Nr. 6/85 Juni
DM 6,50, sfr 6,50, 6S 50, Lit 5900, hfl 7,50
tE
Hires-FarbbDit
Superdump
Fourier-Anal
2
Solitalke
BIN CE B]@N
RO
EB
ae
Interfaces für Computer mit Applebus + Interfaces für Computer mit Applebus + Interfa
AP 13 und AP 17 AP 33
RAM-Karten zum Einsatz als Pseu- RAMDISK der neuen Generation.
dodisk unter CP/M, USCD und Für besonders speicherintensive
APPLE-DOS. Speichergröße von Arbeiten ist der Ausbau in Stufen
64 kByte bis 256 kByte. von 64 kByte bis 1MByte möglich.
Bestell-Nr.: A 1013 a-b Bestell-Nr. A 1033
A 1017 a-d
AP 14
Floppy-Controller für alle Anwen-
dungsfälle. 10 Laufwerke können
gleichzeitig angeschlossen werden.
4 x 8” DSDD, 4 x 5Va” DSDD und
zwei Apple-Standardlaufwerke.
Maximal ca. 10MByte im Direktzu-
griff.
Bestell-Nr.: A 1014
RN) jetzt 512 kK-RAM
AP 20
INTEMEX mit 68 000 CPU und 123
k-RAM. Diese Karte macht aus Ihrem
Rechner mit „Applebus” einen ech-
ten 16 bit-Rechner. Eine Zusatzkarte
(AP 26) ermöglicht einen Arbeitsspei-
cher bis zu einem MByte und an Soft-
ware gibt es einiges. Z.B. stehen drei
Betriebssysteme und die wichtigsten
Hochsprachen zur Verfügung.
Bestell-Nr. A 1020
AP 19
12-Kanal AD-DA-Wandler mit 12 bit
Auflösung und 25 u sec Wandlungs-
zeit. Eingangsspannung +10 V. Ein
schneller Wandler für extrem
schnelle Anwendungen.
Bestell-Nr.: A 1019
WIOWDPREIETRNR
NEU! 8 MHz Takt
AP 22
INTEMEX mit Z 80 B-CPU und 64
k-RAM. Wenn Sie einmal diese Karte
in Aktion gesehen haben, werden Sie
auch feststellen: „Geschwindigkeit
ist keine Hexerei, man braucht nur
die AP 22”. Mit dieser Karte wird Ihr
APPLE II zum z.Z. schnellsten CP/M-
Computer, und in Verbindung mit
dem SPACE 84 erhalten Sie Compu-
terleistung, die wirklich einmalig ist.
Wir vermitteln gerne eine Vorführung.
Bestell-Nr. A 1022
Das Interface-Buch von IBS, ein Buch für Alle, die Ihren APPLE II oder Kompatiblen
optimalnutzen wollen. Detaillierte Schaltpläne, Bauteilelisten und Benutzungshinweise
zu allen IBS-Interfaces finden Sie jetzt in einem Buch vereint. Ausführliche Abhandlun-
welten aber auch über die Grenzen des APPLE II-Systems bestimmen den Wert dieses
\
ao‘ „A gen über Spezialschaltungen, über Anwendungsmöglichkeiten, über neue Software-
Buches.
Für nur DM 8,00 erhalten Sie dieses Buch ab sofort bei Ihrem Computerfachhändler
oder für DM 8,00 + DM 2,00 Versandkosten bei IBS COMPUTERVERTRIEB.
135
cCOMmrULETTecrNt
Olper Straße 10 - 4800 Bielefeld 14 - Tel.: 06521/444032 - W. Germany
1011 Rose Marie Lane 16 - Stockton CA 95207 - Tel. 209/473 —- 7473 USA
Jeder Apple-Besitzer, gleich ob er kleine
oder große Programme schreibt, kommt
zwangsläufig im Laufe der Zeit zu der
schmerzlichen Erkenntnis, daß es fehlerlo-
se Programme nicht gibt. There is always
one more bug! Folglich erfordert jedes
kommerziell vertriebene Programm einen
gewissen „Support“ zur Ausmerzung von
Fehlern. Zwei Beispiele:
Bug 1: In meinem Programm „RAM-
DISKLC“ aus Peeker, Heft 1/85, S. 8, ist
ein sehr unerquicklicher, aber leider nicht
sofort evidenter Bug, der in exakt folgen-
dem Fall auftritt:
10 PRINT CHR$ (4) “OPEN ZAHLEN-
TEATFILE?
20 PRINT CHR$ (4) “WRITE ZAHLEN-
TEXTFILE"
30 PRINT Z1: PRINT Z2...: PRINT ZN:
REM usw.
Es muß also ein Textfile (kein Binärfile
usw.) eröffnet werden; ferner muß ein
Schreibvorgang stattfinden (WRITE, nicht
READ); und schließlich müssen Zahlen
(nicht Strings) geschrieben werden. Wenn
nunmehr eine Zahl zwei Textfile-Sektoren
überlappt, enthält genau diese Nahtstelle
zwischen vorangehendem und folgendem
Sektor „Zahlenschrott“.
Bug 2: Die ProDOS-Version 1.0.1 (und
1.0.2) in Verbindung mit der BASIC.SY-
STEM-Version 1.0 hat einen ähnlichen
Bug (s. S. 52 in diesem Heft):
10 PRINT CHR$ (4) „OPEN TEXTFILE“
20 PRINT CHR$ (4) „READ TEXTFILE,F1“
30 INPUT ZAHL: REM oder INPUT STRING
Es muß also ein Textfile eröffnet werden
(kein Binärfile usw.); ferner muß von dem
Textfile gelesen werden (READ, nicht
WRITE); und schließlich muß eine Feld-
nummer F > = 1 spezifiziert werden. Da-
gegen ist es gleichgültig, ob eine Zahl oder
£ediTORIAL
ein String eingelesen wird. Hierzu kommt
es jedoch gar nicht mehr, denn in Zeile 30
weist das BASIC.SYSTEM den Variablen-
wert nicht der INPUT-Variablen zu, son-
dern schreibt ihn erbarmungslos in den
Speicher des Applesoft-Programms (ab
$0801), das somit zerstört wird.
Zur Würdigung des „Supports“ muß man
den Preis der Software mit berücksichti-
gen. Nehmen wir einmal der Einfachheit
halber an, daß ein Peeker-Heft im Durch-
schnitt 10 Progamme enthält. Da ein ein-
zelnes Heft DM 6,50 kostet, hat jedes ein-
zelne Programm einen Durchschnittspreis
von 6,5 : 10 = 0,65 DM. Unser „Support“
für das 65-Pfennig-Programm beschränkt
sich daher auf die Veröffentlichung eines
Patches, der den RAMDISKLC-Bug besei-
tigt.
ProDOS wird anstelle von DOS 3.3 heute
in Verbindung mit der Hardware geliefert.
Ein halbwegs komplettes Hardware-Paket
mit Laufwerk(en) usw. kostet bei einem
Vertragshändler heute immer noch gut DM
4000,-. Dafür könnte man über 50 (in Wor-
ten fünfzig!) Jahre lang den Peeker abon-
nieren. Welchen „Support“ erhält man je-
doch in bezug auf den ProDOS-Bug? In
der Regel gar keinen, weil man aus nahe-
liegenden Gründen kaum einen Vertrags-
händler findet, der so tief in dieses Be-
triebssystem eingedrungen ist, daß er eine
Patentlösung („Patch“) anbieten kann.
Denn schließlich ist ein Händler ein Händ-
ler und kein Entwickler.
Ulrich Stiehl
So entstand der APPLE-Biß!
(Frei nach Wilhelm Busch) Computergrafik von N. G. Barbieri
Impressum Verleger und Herausgeber: Anzeigenleitung:
Dipl.-Kfm. Holger Hüthig Jürgen Maurer, Tel. (06221) 489218
Magazin für Apple-Computer Geschäftsführung Zeitschriften: z. Zt. gilt Anzeigenpreisliste Nr. 3
2. Jahrgang 1985 Heinz Melcher Vertriebsleitung:
Peeker
Ruth Biller, Tel. (06221) 489280
ISSN 0176-9200 Chefredakteur:
Produktionsleitung: Gunter Sokollek
© für den gesamten Inhalt Ulrich Stiehl (us) Tel. (06221) 489352 een re
einschließlich der Programme (Bitte nur in redaktionellen Angelegenheiten ne er
Dr. Alfred Hüthig Verlag, anrufen) Titelbild: Creative Computer
Heidelberg 1985 Service, Mannheim
MAGAZIN FÜR APPLE-COMPUTER
Impressum ur . 5 Graf-quattro
Inserentenverzeichnis . 8] 5 Teil 2: Schneller als der Schall
Leserbriefe .. . 69 von Nino G. Barbieri
Wie gibt man Maschinen-
programme ein?.. . . . . 70 j
Extended Graphic System 7 Das Farbbit
Terminal-Programm für die 16 Pseudo-Double-Hires auf dem Apple Il Plus
Super-Serial-Card 79 von Hans-Detlef Siewert
Testberichte
Diversi-DOS 4-C . 72 Superdump
Lasar Ilze nn ‚25 22 Das universelle Hires-Grafik-Dump-Programm
Typenradschreibmaschine von Jürgen Geiß
Brother CE 50 °. 18
Editierhilfen für den Apple Hardcopy auf Olympia ESW 100 RO
GPLE und DOUBLE TAKE . it 34 Ein Typenraddrucker wird grafikfähig
Lernprogramme von INTUS . ‚78 von Ralf Menssen
3 8 Fourier-Analyse
von Peter Walber
Applesoft-Erweiterungen
43 Eine Sammlung von Ampersand-Routinen
von Markus Enzinger
A 8 RAM-Disk-Driver für Pascal 1.1
von Michael Schröter
ProDOS
5 2 Theorie und Praxis
von Ulrich Stiehl
Apple-CP/M
55 Mit einem RAM-Disk-Driver für die 64K-Karte
von Karl-Walter Bott
Solitaire
ee A und wie man es löst
von Stefan Maas
Verlag: Erscheinungsweise: 12 Hefte jährlich, Zahlungen: an den Dr. Alfred Hüthig Verlag Bankkonten: Landeszentralbank Heidel-
Dr. Alfred Hüthig Verlag GmbH
Im Weiher 10, Postfach 102869
6900 Heidelberg
Telefon (06221) 489-0
Telex 4-6 1727 hued d.
Erscheinungstag jeweils 1 Woche vor Monatsbeginn.
Jahresabonnement DM 72,-, einschließlich MwSt,
im Inland portofrei. Einzelheft DM 6,50
Vertrieb Handel:
MZV - Moderner Zeitschriften Vertrieb GmbH
Breslauer Str. 5, Postfach 1123,
8057 Eching b. München,
Tel. 089/3191067, Telex 0522 656
GmbH, D-6900 Heidelberg 1: Postscheck-
konten: BRD: Karlsruhe 485 45-753;
Österreich: Wien 7555888; Schweiz: Basel
40-24417; Niederlande: Den Haag 145728;
Italien: Mailand 47718; Belgien:
Brüssel 723026; Dänemark: Kopenhagen
34969; Norwegen: Oslo 994 24;
Schweden: Stockholm 5477 76-5
berg 67 207 341; BLZ 672000 00; Deutsche
Bank Heidelberg 02165041; BLZ
672 70003; Bezirkssparkasse Heidelberg
204 51, BLZ 67250020.
Herstellung: Heidelberger Verlagsanstalt
Printed in Germany
Jedes Hires-Grafikprogramm hat selbst-
@ verständlich einen Hires-Cursor. Ich halte
nicht viel von einem Cursor! Für mich sind
zwei Cursoren viel besser.
Warum zwei Cursoren?
— Weil der Mensch zwei Hände hat,
— eine Linie zwei Enden,
— ein Zirkel zwei Spitzen,
von N.G. Barbieri
—- et cetera.
Teil 2: Schneller als der Schall
6 Peeker 6/85
1. CURSOR1 und CURSOR2
Die ersten zwei Utilities dieses Beitrags
bilden die zwei Cursoren auf der Hires-
Seite und sind — wie die Programme aus
dem ersten Teil dieser Serie (Peeker, 4/
85) — selbständige Assemblerprogramme,
die direkt von Applesoft oder anderen Ma-
schinenprogrammen aufgerufen werden
können. Im Grunde genommen sind die
zwei Routinen identisch bis auf die Form
der Shapes: „+“ für CURSORI und „x“
für CURSOR2. Bevor ich auf die Funktion
eingehe, einige Worte über die Applesoft-
Routine HFNS ($F6B9). Diese untersucht
die aktuelle Programmzeile, holt sich ei-
nen ersten Wert, der nicht kleiner als O und
nicht größer als 279 sein darf, prüft, ob ein
Komma vorhanden ist, und holt sich dann
Peeker 6/85
einen zweiten Wert, der nicht kleiner als O
und nicht größer als 191 sein darf. Am
Ende sind die Werte, die wir X und Y
nennen wollen, jeweils im X-Register
(XLOW), im Y-Register (XHIGH) und im A-
Register (Y-Wert). Damit ist eine bequeme
Art und Weise gegeben, von Applesoft aus
einen direkten AnschluB an Assem-
blerroutinen für die Hires-Grafik mit Über-
gabe von Werten, Variablen oder Formeln
für die X-Y-Koordinaten zu finden.
Die einzelne Cursor-Routine ist so ge-
schrieben, daß beim ersten CALL ein
Shape mit XDRAW an den gegebenen
Koordinaten gebildet wird. Bei weiteren
CALLs wird immer zuerst das alte Shape
gelöscht und dann ein neues gebildet, ge-
gebenenfalls auf einer neuen X-Y-Posi-
tion. Damit wird die spätere Arbeit in Ap-
plesoft wesentlich erleichtert. Für die Cur-
soren werden die normalen Applesoft-
Shapes verwendet, aber direkt ohne den
Umweg über das offset-indizierte Verfah-
ren. Das geschieht, indem zuerst im X-
und Y-Register jeweils das Low- und
High-Byte der Speicherstelle, wo die
Shape-Vektoren anfangen, und im A-Re-
gister die Rotation (in unserem Fall immer
0) geladen werden und dann ein JSR auf
XDRAW ($F65D) erfolgt. Ist ein DRAW
gewünscht, gelten dieselben Regeln, nur
sollte dann der JSR auf $F601 geschehen.
Möchte man diese Grundroutine auch für
andere Zwecke benutzen (vielleicht für ein
Flugzeug in einem Computerspiel), so
braucht man nur andere Shape-Vektoren
an der gegebenen Stelle einzufügen.
Um die Cursoren zu steuern, hier die ent-
sprechenden CALLs:
CURSORT: Das erste Mal CALL 24769,
danach CALL 24757.
CURSOR2: Das erste Mal CALL 24820,
danach CALL 24808.
Die entsprechenden
lauten:
CALL 24757: X, Y (später)
CALL 24769: X, Y (anfangs)
für CURSORI1 und
CALL 24808: X, Y (später)
CALL 24820: X, Y (anfangs)
für CURSOR2.
Ähnlich wie bei XPLOT (s. Teil 1 dieser
Serie) darf man nicht den syntaktischen
„ı“ zwischen CALL und Koordinatenwer-
ten bzw. Variablen vergessen. Die Koordi-
naten werden danach automatisch gespei-
chert, und zwar jeweils in der Reihenfolge
XLOW, XHIGH und Y für CURSOR1 in
$03CA, $03CB, $03CC und für CURSOR2
BASIC-Befehle
grafik 4.4
in $03CD, $03CE und $03CF. Damit ist
eine einfache und sichere Übergabe der
Koordinaten für die anderen Utilities ge-
währleistet.
2. LINIE
Die Tatsache, daß die Cursor-Koordinaten
immer verfügbar sind, erlaubt es, mit einer
sehr einfachen Routine eine Linie zwi-
schen den zwei Punkten zu ziehen. Da-
durch, daß wir jetzt auch über einen
XPLOT-Modus verfügen (s. Teil 1), ist es
möglich, die Linie auch blinken zu lassen
und wie ein Gummiband zu behandeln.
Ein Flag bei $0300 (768) regelt dies. Ist die
Speicherstelle auf 0, so wird die Linie in
XPLOT gebildet, sonst erfolgt der normale
HPLOT. Die Assemblerroutine erklärt sich
selbst. Von Applesoft aus reicht einfach
ein
CALL 24861.
Die Unterroutine CURSORE sorgt dafür,
daß die Cursoren veschwinden oder neu
gebildet werden, je nach Bedarf. Damit
wird verhindert, daß Linien oder andere
Gebilde und Cursoren sich gegenseitig
XORen.
3. VIERECK
Benutzt man die zwei Cursoren als diago-
nal entgegengesetzte Ecken, ist es sehr
einfach, ein Viereck zu bilden. Die Technik
ist ähnlich der Routine LINIE, hat aber
zusätzlich eine Unterroutine DOLINE, die
auch für die folgenden Programme nütz-
lich sein wird. Von Applesoft aus wird
VIERECK mit
CALL 24927
aufgerufen.
4. BOX
Die BOX-Routine erlaubt es, ein Viereck
zu füllen. Um die Sache interessanter zu
machen, wird hier alternativ in vertikaler
Richtung mit zwei Farben gefüllt, wobei
auch eine Farbe 8 berücksichtigt wird, d.h.
XPLOT. Dafür verwenden wir zwei Pointer,
und zwar $0302 (770) und $0303 (771),
wo jeweils die gewünschten Farben ge-
pokt werden müssen. Möchte man nur mit
einer Farbe füllen, poke man auf beiden
Stellen denselben Wert und rufe danach
BOX mit
CALL 25007
auf. Will man zum Beispiel den Inhalt des
Vierecks negativ darstellen, dann muß
man zweimal die 8 poken. Die Unterrouti-
ne SETCOL sorgt dafür, daß entweder der
entsprechende COLORMASK-Wert zum
Klaus Jeschke
Hard-, Software
Viert Straße 3-13
6233 Kelkheim
2 (06198) 7523
.n
nlo 188: 1.
2 4} 2 HE
. |
| PaDOHeI
APPLE -- DISKETTEN LAUFWERKE -- APPLE : i IBM *** KOMPATIBEL ***** IBM *** KOMPATIBEL *
Original Disk II m. Controller + DOS3.3+ Hdbuch DM 995,— A ee 6 Mon. Garantie Reparaturservice Alle Teile unterliegen einer sorgfältigen Endkontrolle und wir
Original Disk Il (2. Laufwerk) DM 765,— Ansie-Beirlalne En übernehmen daher volle Garantie für die Funktionsfähigkeit,
Duo-Disk Station Slimline, 2 x 143KB Chinon DM 995,— pp y en sowohl für die gelieferten Leerplatinen, als auch für die fertig
Siemens Disk-Laufw., 143KB, m. Kabel + Gehäuse DM 525,— EEE ä bestückten Boards und Interface Karten, die fast ohne Ausnahme
Abor-Disk-Laufw., Slimline, 143KB,m.Kab.+ Geh. DM 435,— £ mit gesockelten IC's geliefert werden.
Chinon Slimline, 143KB, Superleise, m. Kab.+Geh. DM 495,— i IBM -- Kompatible Interface Karten und Mainboards -- IBM
Teac 55F, 1 MB unf. Kapazität, Shugartbus DM 625,— Disk Controller Karte für 2 Disk-Drives "KL-2020 DM 298,50
Teac 55F, kpl..in Gehäuse, 40/80 Track, 1MByte Color Video Board, Farb- und Video Ausg. *KL-2050 DM 598,—
anschlußfertig, mit Umschaltung 40/80 + Kabel DM 698,— Monochrome Video Boards "KL-2060 DM 398,—
Zweitlaufwerk für Apple II C, 143 KB, mit Kabel DM 498,— RS 232 Drucker Interface Karte KL-2074 DM 199,—
APPLE -- INTERFACES + MAINBOARDS -- APPLE ; Centronics Paralell Interface Karte KL-2072 DM 198,—
Disk Controller f. 2 Original 0. kompat. Drives "DM 89,— / Multifunktion Karte, RAM-Bereich, RS232,
Super-Controller f. 2x Teac 55F, mit Software “DM 188,— Paralell, Clock, mit OK bestückt *KL-2040 DM 499,—
80 Zeich-Karte mit 64K RAM + Softsw. f. le DM 395,— dto. wie vor, jedoch mit 128K bestückt *KL-2041 DM 699,—
80 Zeich-Karte Il,m. Softswitch, 2 Zeichensätze "DM 159 AppLE£ -TASTATUREN+LEERGEHÄUSE+NETZTEILE- APPLE APPLE -- ORIGINAL + KOMPATIBLE - COMPUTER -- APPLE dto. wie vor, jedoch mit 256K bestückt "KL-2042 DM 899,—
Au FUSS Erweiltrung TORE und iiprapetibie ‚DM 98— Standard Einbau-Tastatur, ASCII, freibel. 9 Tasten, APPLE Ile, 64KRAM, Ascii-Tastat. + UHF-Modul. DM 2198— 512K RAM Karte, mit O K bestückt KL-2095 DM 348,—
2 OO UI UUER VER HELD AL DM 88 Doppelbelg. aller Tasten, Groß+Kleinschr.Nr.N26 DM 139,— APPLE Ile. Einstiegspaket = Computer 64KRAM, dto. wie vor, mit 128K bestückt KL-2096 DM 548,—
Z 808 Interface Karte für CPM 3.0, m. 64K RAM ‚DM 595,— Tastatur wie vor, jedoch mit 15er Block Nr.N67 DM 178,— + Philips-Monitor 18 Mhz grün + Siemens F122 - Multi I/O Interface Board, RS232, Disk-Controller,
Printer-Grafik Interface, Epson kompatible [DM 98,— Tastatur Nr. N67, mit sep. Gehäuse, kpl. m. Kabel DM 249,— Laufwerk 143K m. Controller + Lerndiskette DM 3098, — Centronics, Clock, Joystick
SWEET UKGREN, DOENONGEETBOO EIN ‚DM 9%,— seperate Tastatur IBM-Look, anschlußfertig mit APPLE IIC, 128 KRAM, ASCII Tastatur DM 2795,— undLightpen-Port "KL-2071 DM 699,50
Printer-Grafik Interface, NEG/ITOH kompatibel DM 169,— Kabel,Dopp.belegt.Tasten, freiprog.Funkt.Tasten DM 298,— APPLE II C. wie vor, jedoch deutsche Tastatur DM 2998, — Eprom Writer Karte (bis 128K benutzbar) a.A.
Anschluß Kabel f. Paralell + Grafik Interface DM 34,— Seperate Tastatur, Eprom progr.-bar, Cursorblock MACINTOSH System komplett m. Mouse+ Tastatur Hardisk/Winchester Host-Adapter Karte "KL-2022 DM 1188,—
Bufter Grafik-\metiace, banutzber für Drucker Tastenfeld mit 24 Funktionen, Deutsch o. ASCII DM 398, — + Macwrite/Macpaint, Systemguide-Diskette DM 5995, — Mainboard XT Version, 8 Slots 64K_ bestückt
Epson/Nec/ltoh/Okidata u. andere m. 32K Buffer DM 348,— Leergehäuse Standard, passendf. TastaturNr.N?6 DM 98,— MEWA-48K, Apple kompat., Netzt. 5Amp, Tastatur mit 1 Boot-Eprom, 6 Eprom-Plätze frei "KL-1004 DM 996,—
Buffer Interface wie vor aber mit 64K Buffer "DM 585,— dto. wie vor, jedoch passend für 15er Tast. N67 DM 119,— mit Dopp-Belegung + 10 frei Prog.Tasten, mit dto. wie vor, jedoch mit 128K bestückt *KL-1005 DM 1096,—
Anschluß Kabel f. Buffer Interface Karte DM 39,— Leergehäuse wie Mewa 9000, für Einbau von zwei UHF-Mod,, ohne Firmware Eproms. DM 888,— dto. wie vor, jedoch mit 256K bestückt *KL-1006 DM 1296,—
232C Serielle Interface Karte „DM 109— sjimline-Laufwerken + Tastaturanschluß, Plastic DM 159,— MEWA-S4K, wie vor jedoch mit 15er Block DM 948,— Mainboard PC Version, 8 Slots, 64K bestückt
Super Serieiie Interface Karte, Fulldupiex DM 288,— Leergehäuse wie vor, jedoch in Metall-Ausführung DM 198,— MEWA 9000er Serie, mit seper.Tastat. DIN o. ASCII mit 1 Boot-Eprom, 6 Eprom-Plätze frei "KL-1010 DM 896,—
Sprach (Speech) Karte f. Sprachwiedergabe [DM 78,— Leergehäuse IBM-Look, f. 2 Laufw. Standard 5" DM 198,— m. dopp. belegt. Funkt-Tasten, Cursorbl. + 15er dto. wie vor, jedoch mit 128K bestückt "KL-1011 DM 996,—
6522 Paralell Interface Karte DM 148,— Leergehäuse für 1 Slimline Laufwerk, Metall DM 19,90 Block Netzt. 5 Amp., Gehäuse für 2x Slimline- dto. wie vor, jedoch mit 256K bestückt "KL-1012 DM 1296,—
Clock Karte (Datum/Uhrzeit) Ein/Ausgabe "DM 129,— Leergehäuse f. Duo-Disk = 2x Slimline-Laufwerke DM 98,— Laufwerke UHF-Modulator, o. Firmw.-Proms Bei den mit * gekennzeichneten Artikeln gehört zum Lieferumfang
Eprom Writer Karte (2716 - 2764) ‚DM 129,— Leergehäuse f. Duo-Disk = 2x Standard-Laufw. DM 109,— (12KROM), 48K RAM DM 1098,— ein Manual, und z. T. ein Schaltbild.
IEEE-488 Interface Karte DM 398,— Leergehäuse f. Duo-Disk = 2x Slimline + Netztel' DM 179,— MEWA 9000-64-C, wie vor jedoch 64K RAM DM 1198,— IBM -- Kompatible Leerplatinen + Boards - IBM |
ee ee „DM 498 Schaltnetzteile für APPLE u. kompatible Rechner MEWA 9000-64-C Einstiegspaket, wie vor, jedoch Disk Controller f. 2. Drives DM 58,—
Musik Karte m. Diskette und Handbuch DM 119— ,59/3,5A -5V/0,5A +12V/2A -12V/05A N73 DM 99,80 mit 1 Disk Drive eingeb. + Disk-Contr. + Monitor, Color Grafik Video Board DM 78,—
PAL Color Interface Karte (UHF + Video) "DM 129,— +5V/5 A -5V/0,5A +12V/2,5A -12V/0,5a N74 DM 119,80 grün DM 2098,— RS232 Interface Karte DM 68,—
AGB Interface Karte (f. Appie ll + Il+) "DM 169— ,54/7,5A -5V/0,5A +12V/2A -12V/05A N75 DM 149,50 IBM-Look Gehäuse für MEWA 9000 Serie Aufpreis DM 68,— _Centronics Paralell Interface Karte DM 68,—
Wild Karte (kopiert über RAM-Bereich) "DM 119,— “or... DISKETTEN + DISKETTEN-BOXEN -- see _ MATRIX- UND TYPENRAD - DRUCKER -—- ******"* Multifunktion Interface Board DM 99,—
Peek EN EIWERB U EEE N Eshenecltwe DIR Zen Profi Disk.Box, m. Schloß, Klars.-Deckel, 100Disks DM 49,— CP-80 Matrix Drucker, Epson kompat., vollgrafik(. DM 739,— Eprom Writer Interface Karte DM 78—
256K RAM Erweiterungs Karte m. Patchsoftware "DM 698,— Disk Box mit Klars.-Deckel, ca. 70 Disketten 5" DM 26,— CP-80 X mit eingeb. Interface für VC64f.Sim.B. DM 899,— Multi l/O Board DM 78—
6809 Prozessor Exell-9 Interfacekarte +DM 398,— „artbox für 10 Disketten, mit Klappdeckel DM 690 SPEEDY 100.80 Epsonkompat..1002/s,v..grafik. DM 759 — Mainboard XT Version, 8 Slots DM 98,—
IC-Tester Interface Karte (RAMS/TTL 54/74) DM 448,— Disketten, mit Verstärkungsring, 3 Jahre Garantie GEMINI 10X, Neu mit Textsp., 100 Z/s., 9x9 Mat. DM 998,— Mainboard PC Version, 8 Slots DM 96,—
FOREN LT RED DEF ON BI ARRORR DM 587 ABX 100 = SS/SD 10 Stck.a. 3,9850 Stck. a. 3,88 500 Stck.a.3,59 GEMINI15X wie 10X, jedoch bis375 mm Papierbr. DM1198— RAM Card für Speicher-Erweiterung DM 68
Hauptplatine 64K, wie vor DM 648.— ABX 200 = SS/DS 10 Stck. a. 4,08 50 Stck. a. 3,98 500 Stck. a. 3,69 ITOH 8510 B, Die Zuverlässigkeit in Person DM 14755. — Alle Leerplatinen werden mit Bestückungsplan geliefert.
APPLE - LEERPLATINEN go APPLE ABX 400 = DS/DD 10 Stck. a. 4,98 50 Stck. a. 4,88 500 Stck. a. 4,59 JUKI 6100. Typenraddr., 22 Z/s, TA-Typenräder DM 1495,— Schaltbilder, soweit verfügbar, Lieferung gegen Aufpreis.
Leerplatinen der obigen Interface Karten sind alle in vergoldet, typ a B IBM -- Gehäuse/Netzteile/Tastaturen/Diskdrives - IBM
m. Bestück-Aufdruck + Best.-Plan lieferbar. GENE TEEETTERERFTTITENTE Rechner Leergehäuse f. Einbau v. 2 Drives DM 236,—
Leerplatinen mit der Kennzeichnung "DM 39,— Computer-Artikel Nachnahmeversand unfrei, Zwischenverkauf vorbehalten. , e Profi-Tastatur, m. Kabel im Gehäuse, ASCIl DM 395,—
Leerplatinen mit der Kennzeichnung "DM 24,50 Angebote freibleibend unter Anerkennung unserer Lieferbedingungen. Technische Änderungen vorbehalten. "Apple ist eingetragenes dto. wie vor, jedoch deutsche DIN Belegung DM 489,—
Leerplatinen mit der Kennzeichnung +DM 33,— Warenzeichen der Fa. Apple-Computer Inc., Kalifornien. Ware mit Rückgaberecht, besonders gekennzeichnet, muß frei zurückgeschickt Standard Tastatur, IBM-Look, ASCII DM 298,—
Experimentier Platine, für Apple Slot EX300 DM 29,90 werden. "IBM* ist eingetragenes Warenzeichen der Firma IBM GmbH Ffm. Netzteil, mit Ventilator, 100 Watt DM en
Leerplatine Motherboard, 48K, mit Best.-Aufdruck DM 66.— dto. wie vor jedoch 135 Watt DM JE
Leerplatine Motherboard, 64K, mit 6502 + Z80 om #—- COMPUTER CENTER CONEX ERICH-WILLI MEYER Disketten Laufwerk, 2x40 Track DS/360 KB Di Fre
5650 SOLINGEN 11: Postfach 11 0206 -11G 6343 FROHNHAUSEN - Postfach 70 11 Harddisk 10MByte, kpl. m. Xebec Controller R
Telefon (021 22) 754.49
Telefon (027 71) 350 71
Sonderliste gegen Rückporto. Katalog gegen 3 DM in Briefmarken
Für lic und Ile mit 64K-Karte
SUPERPLOT
Double-Hires-Utility
von Karl-Walter Bott, 1984, Programmdiskette und Manual, DM 48,—
SUPERPLOT ist eine neue, ungewöhnlich kompakte und schnelle Ampersand-Utility für Double Hires, die einschließlich eines
vollständigen ASCII-Shape-Zeichensatzes wahlweise in Bank 1 oder Bank 2 der Language Card liegt und damit sowohl unter
ProDOS als auch unter DOS 3.3, falls letzteres in die LC-Bank geschoben wurde, benutzt und in eigene Applesoftprogramme
integriert werden kann. SUPERPLOT unterstützt die üblichen HGR-Befehle, denen lediglich ein & vorangestellt werden muß,
also z. B. & HPLOT 500, 100 TO 500, 150 usw. SUPERPLOT ist speziell für das Plotten von beschrifteten wissenschaftlichen
Funktionskurven mit hoher Auflösung gedacht und weniger für HGR-Spiele.
Hüthig Software Service - Postfach 102869 - 6900 Heidelberg 1
8 Peeker 6/85
GILLEILTAAE ST
Gratis!
‚AppleQuick
Das Apple Il-Brevier
fur haufig gebrauchte
Adressen und Befehle!
64 Seiten uber Apple-
soft, DOS, Pascal, CP/M.
Die beiden Autoren haben zusam- Gleich anfordern!
a. en als 50 We Amateur- a
unk-Erfahrung und präsentieren Se
hier mehr als 20 BAsıc- ) BASIC-Pro-
Programme, die jeden Funkamateur
interessieren: TH-KENNER,
DAMMERUNGSLINIE ‚DX-
RECHNER ,‚DOPPEL-FAHN-
DER, NACHWEISSCHREIBER,
ALLZWECK-CONTEST-LOG-
GER, FIELD-DAY-LOGGER,
WETTBEWERB-LOGGER
u.v.a.m. Das Buch enthält die kom-
PER Listings für Apple II und
% Ablage Bearbeiten Große AIIET Zeichensatz Stil
Be
m ed
andahnnko
Bismarckstr. 67, D-1000 Berlin 12 (030) 342 88 00
5567 Pandabooks!
Ba
N
CD
gramme fur
Funkamateure
Overbeck
Die Qualität kommerzieller Arcade-
spiele läßt sich mit APPLESOFT
BASIC alleine nicht erreichen. Jef-
frey Stanton führt in die Eigenarten
der hochauflösenden Apple-Grafik
ein und präsentiert schließlich eine
Reihe extrem schneller Assembler-
Routinen, mit denen Sie viele Effek-
te bekannter Spiele selbst program-
mieren können. Gute BASIC-
Apple II
Raster Grafik
Jeffrey Stanton
3-89058-027-0 ca.256S. DM 48,--
komplett mit Disk DM 89,--
Kenntnisse werden vorausgesetzt, A pp le I]
eine Einführung in Assembler- Eine detaillierte Beschreibung der
Programmierung wird gegeben. Schal tp lane Apple II und Apple IIplus Schaltun-
gen. Wenn Sie Ihren Apple selbst re-
parieren, Interface-Karten oder
Schaltungserweiterungen entwerfen
oder einfach nur besser über das In-
nenleben Ihres Apple Bescheid wis-
sen wollen - dieses Buch bietet Ihnen
eine Fülle an Informationen, Schalt-
pläne und Zeitdiagramme, Theorie
und praktische Tips.
3-89058-012-2 215S.A4 DM64,--
3-89058-006-8 299 Seiten DM 49,-- Wınston D Gayler
komplett mit Disk DM 89,--
Don Worth und Peter Lechner sind
die Autoren von ‘‘Beneath Apple
DOS‘‘, der Bibel aller DOS 3.3-
Benutzer. In ihrem neuen Buch ha-
ben sie sich ProDOS vorgenommen
und mit der ihnen eigenen Gründ-
lichkeit zerlegt. Ausführliche Be-
Handbuch
Worth/Lechner
schreibung der Arbeitsweise, der
Endlich anspruchsvolle Apple-
Km ZZ us nn
Dateitypen, des ‘“MLI‘‘ und des Grafik für BASIC-Programmierer. i f
“BASIC SYSTEM“‘. Das Standard- Mikrocomputer Grafik Mik 3 OCOMDIMET
werk für jeden ProDOS-Anwender. i Grafik
- enthält fast 80 lauffertige BASIC-
3-89058-036-X ca.250S. DM 46,-- Programme, die die beschriebe- } Roy E. Myers
nen Konzepte illustrieren.
beschreibt ‘Hidden Line‘‘- und
“Hidden Surface‘‘-Techniken, r
Skalierung, Rotation und Trans- >
lation von Grafiken |
\ Das Assembler-Lehrbuch für
BASIC-Kenner.
Apple II
bietet eine Einführung in die Ani-
rd ki. a der a: Vet 7 Assembler- i mationstechnik
annter Software-Pakete, schrie > ing j
eine monatliche Kolumne über ) [Ogrammıer und 3-89058-000-9 292 Seiten DM 49, |
Assembler-Programmierung in der Roger Wagner komplett mit Disk DM 89,--
Apple-Zeitschrift SOFTALK. [ ma
Der vorliegende Band faßt diese si Ö N)
Reihe, korrigiert und erweitert, zu- N) | 22 Pascal-Programme, mit denen
sammen: Eine stufenweise Einfüh- -
Sie die Grafik-Möglichkeiten Ihres
Apple
Apple voll ausschöpfen:
Pascal Grafik
rung in die Befehle und Strukturen
der 6502-Assemblersprache, mit vie-
len Beispielen von der einfachen
Tongenerierung bis zum Disketten-
zugriff.
3-89058-003-3 277 Seiten DM 48,--
komplett mit Disk DM 89,--
Tom Swan
“‘Designer‘‘ ermöglicht es Ihnen, ei-
gene Zeichensätze zu entwerfen.
‘“‘Gredit‘‘ unterstützt Sie beim Ent-
werfen komplexer Bildschirm-
Grafiken
“Printfoto‘‘ bringt Ihre Entwürfe
aufs Papier.
Darüberhinaus bietet das Buch eine
Fülle fertiger Prozeduren, die Sie
| zeitsparend in Ihre eigenen Pro-
gramme einbauen können
3-89058-009-2 280 Seiten DM 49,--
komplett mit Diskette DM 89,--
Ein Simulationsprogramm, das Sie
in das Innere des 6502 Mikroprozes-
sors führt. Sie sehen auf dem Bild-
schirm, wie die einzelnen Instruktio-
nen in Zeitlupe ausgeführt werden,
wie sich die Register und die Flags
verändern. Ein unverzichtbares
Hilfsmittel beim Erlernen der
Assembler-Programmierung, da-
nach ein wertvolles Werkzeug beim
Testen Ihrer eigenen Programme.
Komplett mit einem 6502 Editor/-
Visible Computer
Charles Anderson
Österreich. OÖLandesverlag, Linz * Schweiz : Thali AG, Hitzkirch |
In allen Buchhandlungen und Computershops oder direkt von:
Pandabooks, Bismarckstr. 67, 1000 Berlin 12, (030) 342 88 00 ;
BE BEE Bestellcoupono BRBRBBBBEBBBBEBBEBEEN
Assembler, deutschem Handbuch Name: . eis Sa ee
(150 Seiten) und über 30 Beispiel- Anschrift: O per Nachnahme
programmen. (zzgl. Versandspesen)
Menge Titel Preis
3-89058-019-X DM 129,--
Peeker 6/85 9
Einsatz kommt oder der XPLOT (8) einge-
schaltet wird. SETCOL wird auch bei der
folgenden Routine benutzt.
9. HINTERGRUND
Grundsätzlich funktioniert HINTER-
GRUND wie BOX, nur mit festen Werten
und dadurch schneller (schließlich muß
die ganze Seite gefüllt werden). Der ent-
sprechende Applesoft-Befehl lautet
CALL 25177.
6. PAGE.SWAP
Für den Grafik-Editor, den ich später vor-
stellen werde (HGR als Arbeitsseite und
HGR2 als Hilfsseite), wird es oft notwendig
sein, die zwei Seiten auszutauschen. Die-
se kleine Routine besorgt das blitzschnell.
Zum Swapppen verwende man
CALL 25258
als Applesoft-Befehl. Hier ist der Unter-
schied zwischen Applesoft und Maschi-
nensprache voll spürbar. Ein entsprechen-
des Applesoft-Programm würde über
200mal langsamer sein!
Lassen wir es für diesmal genug sein. Im
3. Teil von Graf-quattro geht es um das
Übertragen oder Kopieren von einem be-
liebigen viereckigen Ausschnitt, entweder
auf derselben oder auch auf der anderen
Grafikseite.
10
SCHNELLER AlSG DER SEHALL
.denndasModem | Ber
WS 2000 überträgt —.
“ LocaL TEST Ras
\ T TIRKLE Modem WS 2000
» Datenaustausch und Kommunikation — weltweit und mit
praktisch jedem Computer $» Nutzung von Datenbanken,
Mailboxen, DATEX-P, BTX, BTX rückwärts usw. $ TELEX
nutzen ohne eigenen Anschluß — mit Ihrem Computer und:
dem WS 2000 PAlle gängigen Baudraten (75, 300/300,
600, 1200, 1200/75, 75/1200) und internationalen Stan-
darts (CCITT, BELL) — auch automatisch umschaltbar (mit
IC-Satz SK-1) $ Automatisches Wählen (mit AD-2) $ Au-
tomatisches Anruf-Annehmen (mit AA-2) $ Einfacher An-
schluß (parallel zur Telefonleitung) ® Eingebautes Netzteil
» Deutsche Anleitung $ 1 Jahr Garantie $» Sofort ab La-
ger Hamburg lieferbar
Preise (inkl. MWST.; zuzügl. Verp. u. Versandk.; bei Vorkasse frei Haus):
WS 2000 World Standard Modem DM 798,00 IBMC IBM-Interface (UPL-Port) DM 330,60
AD-2 _AUTODIAL-Platine DM 199,50 APC Apple-Int. (RS232 u. UPL) DM 330,60
AA-2 AUTOANSWER-Platine DM 199,50 CBM-1 Interface f. C64/VIC20 DM 136,80
SK-1 Steuer-IC-Satz DM 96,90 ML-2 Kabel Computer/Modem
UPL Kabel f. AD-2 u. SK-1 DM 45,60 (nicht nötig f. APC-2 u. CBM-1) DM 57,00
Software und weitere Interfaces auf Anfrage » Erhältlich im Fachhandel oder vom Importeur:
Claus F. Erbrecht - Computer Related Products
Lappenbergsallee 37 - 2000 Hamburg 20
Tel.: 040/8505255
Achtung: Nur für hausinterne Telefon-Anlagen - in \Z
Ai MIRACLE
der Bundesrepublik Deutschland ist der Anschluß
an das öffentliche Telefonnetz nicht gestattet!
Peeker 6/85
CURSOR1
60DE:
6PEl:
6DEA:
60ET:
32
cl
55
np
51 Bytes
CURSOR2
oo onısVv ou huıvd m
DrbrerbrrrrH HH
SODOv IODTT PU DH
DWDDXMD
QvDdHr
DD
a»
DD DD
SONO
en
rm
Bon am a a oa wa WW
SOON) AU D
AA
av
TTtm mm nm m np pr ra» »
ONODOTTAUDHSOOTÄNID OA
oo oı9 m Bud Hr
DrrbHrbrHrHHr HH
SO o IV AU DVD HU
DD
Dr
23
60ES: AE CD 3 24
Peeker 6/85
ORG $6@B5 ‚24757
CURSOR1
*
E 2
*
*
* von N.G. Barbieri/1985
%*
*
Aufrufen mit CALL 24757: X,Y
COLON EQU $3A sun
CUXL EQU $3CA
CUXH EQU $3CB
CUY EQU $SCC
SYNCHR EQU $DEC®
HFNS EQU $F6B9
HPOSN EQU $FAll
XDRAW EQU $F65D
*
* Weitere CALLS
%*
* Hole alte Koordinate
%*
LDX CUXL
LDY CUXH
LDA CUY
und lösche alten Cursor.
JSR CURS
Erster CALL
Hole neue Koordinate
LDA #<COLON
JSR SYNCHR
JSR HFNS
‚Syntax-
‚prüfung
Speichere neue Koordinate
STX CUXL
STY CUXH
STA cCUY
und bilde neuen Cursor.
JSR HPOSN
LDX #<SHAPE ‚Shape-
LDY #>SHAPE ‚adresse
LDA #$9 ;ROT=®
JMP XDRAW
%*
* SHAPE für Cursor +
%*
SHAPE HEX 3207C1
HEX C16721
HEX 5534A97
HEX 09
ORG $6PE8 ‚24808
CURSOR2
von N.G. Barbieri/1985
*
*
*
*
*
*
*
Aufrufen mit CALL 24808: X,Y
*
COLON EQU $3A zum
CUXL EQU $3CD
CUXH EQU $3CE
CUY EQU $3CF
SYNCHR EQU $DEC®
HFNS EQU $F6B9
HPOSN EQU $FAll
XDRAW EQU $F65D
%*
* Für weitere Kommentare siehe
* CURSORI!
*
* Hole alte Koordinate
*
LDX CUXL
oo oıoaPruvmnd-
DHrrrbrHrHr Hr HH
So SV UV AND HU
DWVDDXD
N DH
WWW mnmwmnmnmn mn ABArR»r—r par ar W A N NW A U U U SS DI DWVDWDWDD
oO ID PUD- SO IO TI PPUNUNDHrSOVO IVO UI PWNDH-BSOO ID UM
*
LDY
LDA
JSR
LDA
JSR
JSR
CUXH
CUY
CURS
#<COLON
SYNCHR
HFNS
‚Syntax-
‚check
* Speichere neue Koordinate
%*
*
STX
STY
STA
JSR
LDX
LDY
LDA
JMP
CUXL
CUXH
CUY
HPOSN
#<SHAPE
#+>SHAPE
+$9
XDRAW
* SHAPE für Cursor X
”
SHAPE
HEX
HEX
HEX
HEX
1C1C4D
Fl1ElE
1E4D39
C19799
von N.G.Barbieri/1985
Aufrufen mit CALL 24861
*
CUlXL
CUIXH
CUlY
CU2XL
CU2XH
CU2Y
XFLAG
CURS1
CURS2
HPOSN
XLINE
HGLIN
“*r rk kr KRr Kr
*%* *
%*
*
*
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
JSR
Dann Linie
LDX
LDY
LDA
JSR
LDX
LDY
LDA
BEQ
LDA
JSR
JMP
LDA
JSR
CURSORE LDX
*
* Die Routine
LDY
LDA
JSR
LDX
LDY
LDA
JSR
RTS
$3CA
$3CB
$3CC
$3CD
$3CE
$3CF
$399
$60D2
$6105
$FAll
$603F
$F53A
Erst Cursoren löschen
CURSORE
bilden ...
CUlXL
CU1lXH
culY
HPOSN
CU2XH
cu2Y
XFLAG
XOR
CU2XL
HGLIN
CURSORE
CU2ZXL
XLINE
CUlXL
CUlXH
culY
CURS1
CU2XL
CU2XH
CU2Y
CURS2
‚Shape-
‚adresse
;ROT=®
Zieht eine HPLOT- oder XPLOT-
Linie zwischen CURSOR1l und
CURSOR2.
‚Ist XOR?
;Nein!
‚Ja!
und wieder Cursoren.
CURSORE kann auch
11
66 Bytes
VIERECK
oo o_ıvVum Pu vr
AU D Hr
FON
a
* von anderen Patches
* angesprochen werden!
ORG $615F ‚24927
*
* VIERECK
POS
*
* von N.G.Barbieri/1985
*
* Aufrufen mit CALL 24927
*
CUlXL EQU $3CA
CU1lXH EQU $3CB
CUlY EQU $3CC
CU2XL EQU $3CD
CU2XH EQU $3CE
CU2Y EQU $3CF
XFLAG EQU $309
HPOSN EQU $F4ll
XLINE EQU $6@3F
HGLIN EQU $F53A
CURSORE EQU $6146
Bildet ein HPLOT- oder XPLOT-
Viereck, wobei CURSOR1l und
CURSOR2 diagonal entgegen-
gesetzte Ecken sind.
“RK KKR Kr
JSR CURSORE
*
LDX CUIlXL
LDY CUI1XH
LDA cCUIlY
JSR HPOSN
LDY culY
LDX CU2XH
LDA CU2XL
JSR DOLINE
LDY cuU2Y
LDX CU2XH
LDA CU2XL
JSR DOLINE
LDY cu2Y
LDX CUIlXH
LDA CUIXL
JSR DOLINE
LDY cCUlY
LDX CUIlXH
LDA CUIXL
JSR DOLINE
*
JMP CURSORE
Folgende Routine bildet eine
Linie entweder in Farbe oder
XOR. Kann auch von anderen
“*KKK KK
DOLINE PHA
LDA XFLAG ;XOR?
BEQ XOR ‚Ja!
PLA ‚Nein!
JMP HGLIN
PLA
JMP XLINE
$61AF ‚25007
von N.G.Barbieri/1985
Aufrufen mit CALL 25907
“KR KK KRK KH
CUlXL EQU $3CA
Utilities angesprochen werden.
CUIXH EQU
culY EQU
CAlY EQU
CU2XL EQU
CU2XH EQU
cu2Y EQU
CA2Y EQU
XFLAG EQU
FARBEl EQU
FARBE2 EQU
HPOSN EQU
HCOLORZ EQU
CURSORE EQU
DOLINE EQU
COUNT EQU
CFLAG EQU
COL1 EQU
COL2 EQU
*
$3CB
$3CC
$3C6
$3CD
$3CE
$3CF
$3C9
$399
$392
$393
$FAall
$E4A
$6146
$6lAl
$9
$1
$2
$3
Füllt eine Box alternativ
mit zwei Farben auf, wobei
eine oder beide Farben auch
XOR sein können!
JSR
JSR
LDA
STA
CURSORE
SETCOL
+$9
CFLAG
Die vorhandenen Y-Werte müssen
gemerkt werden.
LDA
LDX
STA
STX
CMP
Wenn beide
dann keine
BNE
Vor RETURN
CUlY
CU2Y
CAlY
CAZY
cu2Y
Y gleich sind,
BOX!
WEITER
sicherstellen, daß
die ursprünglichen Y-Werte
wieder hergestellt werden!
RETURN LDA
LDX
STA
STX
LDA
STA
JMP
”
CAlY
CA2Y
CUlY
cu2Y
#59
XFLAG
CURSORE
* Falls Y2>Yl, einfach umtauschen
*
WEITER BCS
PHA
LDA
STA
PLA
STA
LDA
Anzahl der
SUBTR
CU2Y
culY
CU2Y
culY
notwendigen Linien
im COUNT speichern.
SUBTR SEC
SBC
STA
INC
*
* Siehe auch
CU2Y
COUNT
COUNT
Kommentare zum
* Programm HINTERGRUND!
*
LOOP LDA
BNE
DEC
LDA
CMP
BNE
.
SETXOR LDA
STA
JMP
*
LINCOL STA
CFLAG
NEXTCOL
CFLAG
COL1
+58
LINCOL
+59
XFLAG
LINE
HCOLORZ
Peeker 6/85
Sn
Sie haben einen Apple...
wir haben die
Software...
und die
Hardware...
BEER ä Re
: eb RN er AR
; ee nnerıs ee
eh
iu N
uccessol { .
unit — w
PN au {he R | | | ‚ _— Me
| Per DE nn. JSOFT
= | © = EL
und die
Zeitschriften...
wir haben die
Bucher...
u
ee
VarıpAaTe is
ALLES FÜR DEN APPLE II, Il, IE
ee Dr.-Ing. Eden
UHLANDSTR. 195 - D-11000 BERLIN 12
TEL.(O30) 310 423 - TELEX:185859 „Ic
Autorisierter @geppie Fachhändler MICROSOFT Distributor
Peeker 6/85 13
99
199
*
LDA #$1
STA XFLAG
JMP LINE
103 NEXTCOL INC CFLAG
194
195
196
197
108
199
119
111
112
113
114
115
116
117
118
119
129
121
122
123
124
125
126
127
128
129
139
131
132
LDA COL2
CMP #$8
SETXOR
LINCOL
CUlXL
CU1lXH
culY
HPOSN
CU2XH
CUlY
CU2XL
JSR DOLINE
DEC CUIlY
DEC COUNT
Noch Linien?
BEQ RETURN ;Nein!
BNE LOOP ‚Ja!
SETCOL sorgt dafür, daß
in den temporären Variablen
COL1 und COL2 zwei Farben,
inkl. XOR, für Alternativ-
betrieb gespeichert werden.
Ist auch von anderen Utilities
aus ansprechbar!
623F: AE 92 133 ETCOL LDX FARBEIl
6242: BD 59 134
6245: 85 92 135
6247: AE 93 136
624A: BD 59 137
624D: 85 93 138
624F: 69 139
140 x
LDA CTABLE,X
STA COLI1
LDX FARBE2
LDA CTABLE,X
STA COL2
RTS
6250: BO 2A 55 141 CTABLE HEX PP2ASSTF8PAADSFFPB
6253: 7F 80 AA D5 FF 98
178 Bytes
HINTERGRUND
“*RRKKKKKK
ORG $6259
HINTERGRUND
von N.G.Barbieri/1985
Aufrufen mit 25177
XFLAG EQU $39®
HPOSN EQU $FAll
HCOLORZ EQU $E4A
CURSORE EQU $6146
DOLINE EQU $61Al
SETCOL EQU $623F
COUNT EQU $®
CFLAG EQuU $1
CoL1 EQU $2
coL2 EQU $3
*
Füllt mit COLOR, MIXCOLOR
oder XORt (macht negativ)
die HGR-Seite.
JSR CURSORE
JSR SETCOL
LDA +#$9
STA CFLAG
LDA #$cp
STA COUNT
*
LOOP DEC COUNT
*
14
CFLAG = ® --> COLOR 1
CFLAG <> ® —> COLOR 2
LDA CFLAG
NEXTCOL
CFLAG
COL1
62A3: A5
62A5: DB CO
62AT: AC 46 61
81 Bytes
PAGE.SWAP
*
* Ist COLOR = XOR?
*
CMP +#$8
BNE LINCOL ;Nein!
*
SETXOR LDA +#$9 ‚Ja!
STA XFLAG
JMP LINE
*
LINCOL STA HCOLORZ
LDA #$1
STA KXFLAG
JMP LINE
*
NEXTCOL INC CFLAG
LDA COL2
CMP_ #$8
BEQ SETXOR
BNE LINCOL
LDX #$9
LDY +#$9
LDA COUNT
JSR HPOSN
LDX #$1
LDA #$17
LDY COUNT
JSR DOLINE
%*
* Noch Linien?
*
LDA COUNT
BNE LOOP ‚Ja!
JMP CURSORE ‚Nein!
ORG $62AA ‚25258
*
* PAGE.SWAP
A
*
* von N.G.Barbieri/1985
*
* Aufrufen mit CALL 25258
*
HGR EQU $6
HGR2 EQU $8
PAGl EQU $7
PAG2 EQU $9
*
* Diese Routine tauscht super-
* schnell, unter Verwendung aller
* 3 Register, HGR mit HGR2 aus.
*
LDA #$49
STA PAG2
LDA #$29
STA PAGI
LDA #9
STA HGR
STA HGR2
TAY
LDA (HGR),Y
TAX
LDA (HGR2),Y
STA (HGR),Y
TXA
STA (HGR2),Y
INY
Ist Y-Register wieder auf ®?
BNE LOOP ;Nein!
INC PAGI ‚Ja!
INC PAG2
Sind alle 8K übertragen
worden?
“RR Kr
PAGI
+$49
LOOP
Peeker 6/85
gezza MICROMINT
TESROmMUNT
LLTREFFER
LASAR 16
IBM 264 K, TEAC BFDD, Contr.
color Graphik, Multifunktionscard,
nerzei152 4.990;
LASAR ZE
— Apple comp. 64 K +
12 KROM +
80 Zw Tastatur 1.2905
Außerdem volles Rückgaberecht innerhalb
14 Tagen ohne Begründung.
Apple
III '
a
@© Mehrzweckklappgehäuse It. Abb. 179,— | 179,—
® Schaltnetzteile Apple5 A/IBM 15 A 115,-— | 350,—
@ Profitastatur dtsch. LASAR 2000 299,— | 299,—
®@ Interface ab 75,— | 148,—
@ Monitor 22 Mhz incl. Fuß, bernstein 299,— | 299,—
Kaufgarantie/Tiefstpreisgarantie/1A Qualität: 100 % kompatibel inkl. Systemsoftware
Made by Micromint: Apple Il 495,-, Apple Ile 695,—-, IBM 895,— Fertigplatinen 495/695/
895. Tragbare Gehäuse für 7-Zoll/9-Zoll-Monitore 595,-— DM inkl. Tastaturen.
Winchester 27 MB auf Anfrage 1A First Class Controller bis 140 MB 935,— DM.
Generalimporteur MICROMINT Computer GmbH
Hochdahler Straße 151, 4006 Erkrath 2
Telex 8589305 mem
02104/33024
Der nächste Peeker
Heft 7/1985
erscheint am
24. 6. 1985
"yonsÄkor
-UeIY IOMZ UON gnIyosUy Wunz LHOdAOF
" dn»peg 'n wvH HWw (1289) PIeEO-VId ar QQV
" dnypeg 'n WVH Hu (2259) PieQ-vIA 'gz av
"391 ‘08Z
jeqedwoy-eiddy ‘M8r ‘Id-Il NOSIN
JO9VJ43LNI31d4V
485 a4 Iv3l
EOELEES-0E0 UojsloL
ıyN E1-01 eS ‘yN 81-51 '0Q 'n 'IW
youmSyog ueysIeZ 08
ISMW 'Mul "YOIS old asıald
" TE SH 'SOINOHLN3D ‘'WOHd3 “IVd
"wis jsqıyedwoy-ejddy YoeıL Or ‘E01 AT
" yoyedoyny POaJV 1e1l04U0Q-Iyd-ı
“un 8l-ZL 14 'n 'oW Ineyusnuepe
"sie IJyES SQ YOeIL 08 SYF VS Mebnys
J O4HOIW-INOLSaNZıL 3
J04 ww 8 031
"YOIS OL Ileysedns Joy wwg 37
0E02 vaL
00 LOHPZ
00 SIrı
NdO v08Z
NdO 08Z
SU0SZ-99212
SU0SZ-821212
su0S2-#912
SU0SF-ZEL2
su0gr-91212
(9L02 WYS) E419119
SLO 9SZIr WINL
4810NY P9Lr YSWN
sU002-9, 17 AdN
Wa 08'L+ NN !aq ‘YA Jepo NN Jed puesuen
— 5 6 052 sıq :Bunyoediey pun oyod !Wa —'OL+ Isuos wa —'0$
Sr ulag 0001 - 22
—ı|
Yomjlelssqjsspumy "y 'e ujeyelsusßusyy pun sjleineg also
081
12
06 —
05°
092
Peeker 6/85
ZUSATZ-KARTEN:
V-24-Schnittstelle ............ 199,- Z-80-Karte ...... 2.22.2222... 139,-
80-Zeichen-Karte m.Softswitch 236,- 16K-Language-Karte ......... 138,-
Centronics-Karte von Epson für Graphik... . 210,- für Text... .145,-
Centronics-Schnittstelle für 2 Drucker gleichzeitig .........- 22222... 129,-
er ee a a ee a Bene 198,-
uper-Eprommer 239,
Su keinen pP incl. Software für 2708-27128 ............ -
128- K-Karte ee N Re rer auf Anlage
FDC 4 für alle Laufwerke PPY- ‚ Bausatz wielinks ............ 179,-
Leerplatine wie oben incl. Prom u. En ISFLEAIUR ı EIRRSBE ERS EIER RAS 130,-
Auto opatch- -Controller erniconrosen
1x35bis2x8 Disk, keine Patch-Disk notwendig, Patch DOS 3.3, Diversi-
DOS C, 4-C (DD MOVER), Pascal 1.1, Pascal 1.2, CPM 2.2, ‚ProDOSy
IOTL TE ER . Sie ee die Laufwerke untereinander mischen 98, Sa
Gehäuse für 15%" Slimline Laufwerk ..... 22mm n en 39,-
Gehäuse für 2 5%’ Slimline Laufwerke mit Platz für ein Netzteil ......... 159,-
Gehäuse für 2 3%" Slimline Laufwerke mit Platz für ein Netzteil .......... 79,-
VBIRP-GONENER ; : ua ee De anne en 229,-
Floppy-Kabel 34pol. für 2 Laufwerke mit Shugart-Bus ...........2.2.... 35,-
Preh Commander Keyboards
Wir bieten Ihnen die Preh-Qualität auch für Apple. AK 88 Spez. mit Gehäuse, An-
schlußkabel, Zehner-Tastenfeld, dt. Zeichensatz, Snderteten für
Gtri-Codes und Rechenfunklionen 2.2.04 4....:= 2 339,-
Preh Commander Keyboard AK 87, frei programmierbar
bis zu 10 Ebenen, pro Taste bis zu 250 Zeichen ..................... nur 559, =
TEAC 3%" Laufwerk FD 35 P579.-
Speicherkapazität 1 MB, (formatiert 640 KB) jetzt fürnur ........
Nicheneies Preissenkung beit TEAC:
TEACFD55A 11x40 Track ..... 498,- TEACFD55B2x40 Track ..... 579,-
TEACFD55E1x80 Track ..... 535,- TEACFD55F2x80 Track ..... 598,-
Philipps Slimline Floppy X3134. A, 2x80 Track solange Vorrat ......... nur 569,-
FIEBER SE x BU Mack, 26 Bath. Sen sennic nn green nur 459,-
SONY 3V4" Laufwerk... 2.222 en nur 799,-
Sony Laufwerk für Ic .......... auf Anfrage
Apple®-kompatibles Laufwerk incl. Gehäuse + Kabel ........ 222... 599,-
EPSON FX80 ................ 1670,- EPSONFX100 .............. 2159,-
EPSONRX8O .............. 1079,- EPSONRXB8OFT ............ 1295,-
Patch-Diskette für SONY 3%" Laufwerke — ermöglicht die Anpassung an Il/Ile und
kompatible Computer .......... 80,- Manual vorab 15,-DM (wird beim Kauf
der Patch-Diskette angerechnet). dto. für 544” Laufwerke ........ 69,-
Disketten Döb&Böd SS/DD 10St. 62,- 10 Disketten f.Sony 31%” Laufw. .150,-
Akustikkoppler AK 300 mit FTZ-Nr. incl. Netzteil ...... 2222 2c22222... 549,-
Die Microfloppy mit Zukunft:
Speicherkapazität: 2 x 1 MByte for-
matiert: 2x 640 kByte. Anschlußfertig
mit PROM-residenter Patchsoftware
für CP/M 2.2, Apple DOS 3.3, Diversi-
DOS 2-C, 4-C (DD MOVER), Apple
Pascal 1.1, Pascal 1.2, Pro-DOS
un um 1640,- os
10. MB Winchester EIER: 4490,-
... Sonderangebot
p hilipps 2x80 Track, BBauh. ......=..2r0000.. 459,-
Gesamt-Preisliste anfordern!
Preise inclusive gesetzlicher Mehrwertsteuer.
SS] NICH -1Y-Targejslen
m le] LAN WL
EYEICH TREE
DFÜ 02373/66877
Tel. 02373/63159
15
Der Apple Ile mit erweiterter 80-Zeichen-
Karte und der IIc verfügen über eine hoch-
auflösende Grafik von 560 & 192 Punkten.
Dieser Bericht zeigt, wie man Ähnliches
auch mit dem Apple Il Plus und Kompati-
blen erreicht.
Wie man weiß, verfügt der Apple in Farbe
praktisch nur über eine Auflösung von 140
* 192 Punkten, da bei den Farben 1, 2,5
und 6 nur jeder zweite Punkt gezeichnet
wird. Ich selbst verzichtete daher in mei-
nen früheren Programmen meist auf Far-
ben, da ich zum einen auf die volle Auflö-
sung Wert lege und zum anderen nicht
über einen Farbbildschirm verfüge — wie
wohl sehr viele andere auch.
Neuerdings experimentiere ich damit, dem
Apple eine höhere Auflösung zu verschaf-
fen, indem ich das Farbbit gezielt einsetze,
was auf Grün-Monitoren eine etwas ande-
re Wirkung als auf Farbbildschirmen hat.
Zum Einstieg schlage ich Ihnen vor, zu-
nächst das Programm WANDERNDER-
‚STRICH einzugeben. Sie sehen nach
dem Start zwei Striche, die sich von links
nach rechts über den Bildschirm bewe-
gen. Dabei macht der obere 560, der unte-
re aber nur 280 Schritte. Wie ist dies nun
zu erklären?
Es sei zunächst die Art beschrieben, wie
der Apple seine Grafik abspeichert. Pro
Zeile sind wirklich nur 280 Punkte vorhan-
den, egal was Sie jetzt auch denken mö-
gen. Diese Punkte werden in 40 Bytes
abgespeichert, wobei jedes Byte 7 Punkte
beinhaltet. Es bleibt also ein Bit übrig, wel-
ches für die farbliche Darstellung von Be-
deutung ist. Es wird daher das „Farbbit“
genannt. Die sieben Punkte sind nun von
links nach rechts im Byte gespeichert, wo-
bei man sich vorstellen muß, daß das ganz
links stehende das niederwertigste Bit ist
(das linke Bit steht also für den rechten
Punkt der 7-Punkte-Gruppe usw.). Das
Farbbit ist das höchstwertige Bit; es befin-
det sich, wie aus Abb. 1 ersichtlich, ganz
rechts. Wie die einzelnen Zeilen im Spei-
cher stehen, interessiert in diesem Zu-
sammenhang nicht; dazu nur soviel: Sie
sind aus hardwaretechnischen Gründen
nicht linear angeordnet, sondern ähnlich
wie die Textzeilen nach einem bestimmten
Muster gegliedert.
Das Farbbit legt nun den Farbmodus für
die 7 in diesem Byte gespeicherten Punk-
te fest. Man kann also die Farbe nur „ge-
bietsweise“ definieren, was ganz beson-
ders zum Tragen kommt, wenn man einen
grünen Strich durch eine orangefarbene
Fläche zeichnen läßt. Bei den Farben O bis
16
Bit:
Das Farbbiıt
Pseudo-Double-Hires auf dem Apple Il Plus
3 wird das Farbbit jeweils auf O gesetzt, bei
den Farben 4 bis 7 jeweils auf 1. Auf
grünen Monitoren bewirkt das Farbbit nun
keine Farbveränderung, sondern eine Ver-
schiebung um einen halben Schritt nach
rechts, was auf Farbbildschirmen den Ef-
fekt hat, daß die Punkte auf anderen Far-
ben des Farbrasters zu liegen kommen.
Mittels dieses Farbbits kann man nun eine
pseudo-doppelthochauflösende Grafik
auch für die älteren Apple-Versionen
schaffen. Es gibt dabei zwei Methoden, mit
deren Hilfe stehende Bilder höher aufge-
löst erscheinen:
Wert :
Bedeutung: | nk
Abbildung 1
Die erste Methode
Methode 1 besteht darin, daß man bei den
Punkten, die eigentlich bei einem Kreis
oder einem Strich zwischen den normalen
Punkten stehen müßten, das Farbbit auf 1
setzt, wodurch dieser Punkt um einen hal-
ben Schritt nach rechts verschoben wird.
Ich habe diese Technik bei dem Programm
KREIS.1 angewandt, bei dem das Farbbit
mit Hilfe von „HCOLOR =3+4x(S-.5
von H.-D. Siewert
> INT(S))" einmal gesetzt wird und einmal
nicht. Dabei ist der logische Ausdruck „(S
-5 > (INT (S))“ gleich 1, wenn hinter dem
Komma bei S ein Wert steht, der größer
als 0,5 ist. Das Programm zeichnet zwei
Kreise, von denen der eine normal und der
andere höher aufgelöst ist. Diese Methode
hat natürlich ihre Vor- und Nachteile. Vor-
teile: Das Bild erscheint höher aufgelöst
und steht ruhig. Nachteile: Es sind nur 280
Punkte pro Zeile möglich und man kann
die Verschiebung der Punkte genau wie
die Farbe nur 7-punkteweise bestimmen.
Die zweite Methode
Methode 2 besteht darin, daß man die
normalen Punkte auf die eine Grafikseite
und die verschobenen Punkte auf die an-
dere Seite zeichnet. Um beide Bilder zu-
sammenzubringen, muß ständig zwischen
den beiden Seiten hin- und hergeschaltet
werden. Das Programm für dieses Um-
schalten ist aus Geschwindigkeitsgründen
in Assembler geschrieben und heißt FLIP-
Peeker 6/85
PER (abzuspeichern mit „BSAVE FLIP-
PER, A$300 ‚L$30“). Das Applesoft-Pro-
gramm, das die entsprechenden Grafiken
zeichnet (wieder zwei Kreise), heißt
KREIS.2. KREIS.3 zeichnet 3 Kreise, und
zwar den linken nach Methode 2, den miitt-
leren mit normaler Auflösung und den
rechten nach Methode 1. Methode 2 hat
den Vorteil, daß wirklich 560 Punkte dar-
gestellt werden können, nachteilig ist je-
doch, daß das Bild flimmert.
Es hängt vom Einzelfall ab, welche Metho-
de man verwendet, da keine allgemeingül-
tigen Regeln aufgestellt werden können.
Zu sagen bleibt, daß sich manche Bilder
mit keiner der beiden von mir vorgestellten
Möglichkeiten darstellen lassen. Dazu ge-
hören vor allen Dingen Bilder, bei denen
zu viele feine Einzelheiten zu sehen sind.
Will man also eine echte Auflösung von
560 * 192 Punkten, so ist doch ein Apple
Ile mit erweiterter 80-Zeichenkarte oder
ein IIc vorzuziehen.
Damit Sie aber auch die pseudo-doppelt-
hochauflösende Grafik ausprobieren kön-
nen, habe ich das Programm KOMPRES-
SOR geschrieben, das mit „BSAVE KOM-
PRESSOR, A$8000, L$E9" gespeichert
werden soll. Dieses Programm faßt die
Bilder beider Grafikseiten auf einer einzi-
gen Seite zusammen. Die genauere Ar-
beitsweise ist aus Abb. 2 und 3 zu erse-
hen. Es werden die Punkte der beiden
Seiten abwechselnd auf Seite 1 und auf
Appie und IBM
kompatible Gomputer
16K, Z80, Diskcontroler je
80 Zeichenkarte mit Softswitch
2 Zeichensätze
Motherboard 48K ohne
Firmware
Erphi-controler mit Autopatch
Siemenslaufwerk F 122
Philips X3134 2x80 Track
TEAC FD-55B2x40 Track
TEAC FD-55F 2x80 Track
Megaboard (Mainboard XT)
Neu: Stardrucker SG 10
Drive Controler
Monochrome Monitore
Farbmonitore
Tastaturen für IBM und Apple ab 330,—
Versand nur per Nachnahme oder Vorkasse
Weiteres Zubehör für Apple und IBM gegen
frankierten Rückumschlag.
Preissenkung:
Saturn 128K Karte
Ulf Mohwinkel Electronic
Berliner Straße 73
5090 Leverkusen Fettehenne
Telefon 02 14/9 3781
Peeker 6/85
Seite 2 gespeichert. Dabei ist auf Seite 1
das Farbbit stets auf 0, auf Seite 2 hinge-
gen immer auf 1 gesetzt. Wenn man nun
mit FLIPPER zwischen den beiden Seiten
hin- und herschaltet, wirkt das Bild dop-
pelthochaufgelöst. Wie man KOMPRES-
SOR anwenden kann, können Sie aus
dem Programm KOMPRESSOR.DEMO
ersehen. Will man ein hochaufgelöstes
Bild erstellen, so zeichnet man auf Seite 1
die eine und auf Seite 2 die andere Hälfte
des Bildes, läßt den KOMPRESSOR seine
Arbeit verrichten und startet dann
FLIPPER.
Byte 0 Byte 1
von HGR
> —
7a a0 N 12 13] Fatbingiic
gültig
dh „Kompressor’’
0246810 12
Farbbit : O
13981,.92 3338 Farbbit : 1
Byte O von H6GR 1
Byte O von HGR2
Abbildung 2
Zusammenfassend ist zu sagen, daß man
durch meine Methoden nur in Ausnahme-
fällen etwas Ähnliches wie eine doppelt-
hochauflösende Grafik erzeugen kann. Es
Messen ‚Steuern
Regeln
ul 1708:
oder Kompatiblen
Peripheriekarten für
technische Anwendungen:
+ Parallelports
+ A/D-Wandler
+ RS 232C-Schhnittstelle
+ Real/Time Clock
außerdem:
+ Opto. Ein/Ausgabekarten
Information und Händleranfragen bei:
Entwicklungsbüro Brecht
Uhlandstraße 70
7012 Fellbach-Schmiden
Telefon (0711) 51 41 60
arafık 4.4
gibt aber noch andere Anwendungen für
das Farbbit, die nicht mit Farbe, sondern
mehr mit Auflösung zu tun haben — im
Bereich der Animation. Objekte, die sich
waagerecht über den Bildschirm bewe-
gen, wie z.B. der wandernde Strich, kön-
nen so wesentlich feinere Schritte aus-
führen.
Abbildung 3
Ich hoffe, daß möglichst viele Leser durch
diesen Artikel zum Experimentieren ange-
regt wurden, und wünsche allen dabei viel
Erfolg.
I Preisliste
kostenlos!
Unser Angebot im Juni
Drucker Star SG-10
DM 898,—
DM 118,—
schönschreib- und grafikfähig
grafikfähiges Interface hierzu
D.O.S. Computersysteme
Am Kühnbach 42, 7170 Schwäbisch Hall 11
Telefon (0791) 51736
17
WANDERNDER.STRICH 60 HGR2 : HCOLOR= 7: HPLOT ®,®: CALL 62454: HCOLOR= ß:
HPLOT 279,8 TO 9,96 TO 279,191: HPLOT 9,8 TO
1® REM WANDERNDER.STRICH von H.-D. Siewert, Dez. 1984 279,191: HPLOT 279,8 TO ®,191
20 HGR : NORMAL : HOME :Y1 = 89:Y2 = 199:B = 25: VTAB 21: 65 REM Auf HGR2 wird ein neues Bild gezeichnet,
PRINT " DER OBERE STRICH MACHT 569 SCHRITTE!" 7® HGR : POKE - 16392,®: HCOLOR= 7: HPLOT 9,®: CALL 62454:
5® FOR X = ® TO 279: HCOLOR= 3: HPLOT X,Yl TO X,Y1 + 1: HCOLOR= ®: HPLOT ®,® TO 279,96 TO ®,191: HPLOT @,®
HPLOT X,Y2 TO X,Y2 + 19: REM Strich 1 und 2 zeichnen TO 279,191: HPLOT 279,8 TO 8,191
4d FOR A = ® TO B: NEXT : HCOLOR= 7: HPLOT X,Yı TO X,Yl + 75 REM auf HGR wieder die andere Hälfte.
19: REM Strich 1 einen halben Schritt weiterrücken 80 CALL 32768: CALL 768: REM Es werden erneut KOMPRESSOR
50 FOR A = ® TO B: NEXT : HCOLOR= ß: HPLOT X,Y1 TO X,Yl + und FLIPPER gestartet - diesmal direkt mit CALL.
10: HPLOT X,Y2 TO X,Y2 + 19: REM Beide Striche
wieder löschen FLIPPER
60 NEXT : TEXT
KREIS.1
1® REM KREIS.1 von H.-D. Siewert, Dez. 1984
28 HGR : NORMAL : HOME :0 = ®:PI = 3.1415926535:P = PI /
180:X1 = 93:X2 = 186:Y = 90:R = 55
38 FOR 2 = 0 TO 369: HCOLOR= 3:5 =R # SIN (Z*P):C=R«
COS (Z *& P): HPLOT X2 + S,Y + C: HCOLOR= 3 +4 x (S
-— ,5 > INT (S)): HPLOT X1 + S,Y + C: NEXT : REM Zwei
Kreise zeichnen, davon Kreis 2 normal, Kreis 1 nach
Methode 1
Aß HOME : VTAB 21: PRINT " Höhere Auflösung Normale
Auflösung!
KREIS.2
10 REM KREIS.2 von H.-D. Siewert, Dez. 1984
28 NORMAL : HOME : HGR :0 = ß:P = 3.1415926535 / 180:X1 =
93:X2 = 186:Y = 90:R = 59
30 FOR Z = 0 TO 368: HCOLOR= 3:S =R x SIN (Z* P):C=Rx«
COS (Z *& P): HPLOT X1 + S + .5,Y + C: HCOLOR= 7:
HPLOT X2 + S,Y + C: NEXT : REM Zwei Kreise auf Seite B300: AD
l zeichnen, Kreis 1 nach Methode 2, Kreis 2 normal 0303: AD
HGR2 : FOR Z = 0 TO 360:S =R «SIN (Z « P):C=R x COS B306: AD
(Z x P): HPLOT X1 + S,Y + C: HPLOTX2 +S,Y+C: 0309: AD
NEXT : REM Beide Kreise auf Seite 2 zeichnen, Kreis D30C: 29
2 wie oben, Kreis 1 gegenüber Kreis 1 auf Seite 1 B30F: AD
modifiziert 0312: 29
58 PRINT CHR$ (4)'"BRUN FLIPPER": REM FLIPPER starten 0315: 2C
60 GET XY$: IF XY$ < > CHR$ (27) THEN CALL 768: GOTO 6ß: 0318: 19
REM Mit ESC kann aus den Programm ausgestiegen B31A: 2C
werden, wenn das Bild steht B31D: 69
78 TEXT
KRRKKKRRKRRRKKTTF RK TR RR
*
Flipper *
*
*
Dieses Programm schaltet
ständig zwischen fullscreen-
GRAFIK PAGE 1 und 2 hin und x
her. Von H.-D. Siewert, *
%*
*
voSıo9a Au mdH
Dezember 1984
*RKKKKKKKK KH
HH
m &
KAFFFKFFKKFKRFKRFEKRFERFKFRKFK FR FF HK KH TH KR NR
ORG $399
NOMIX EQU $c952
HIRES EQU $c057
GRAPHIC EQU $c059
PAGEL EQU $0054
PAGE2 EQU $c055
KBD EQU $cppp
STROBE EQU $c919
DUMMY EQU $9p9
DH rrH HH
SOVOo or IV AU D
av
par
LDA NOMIX
LDA HIRES
LDA GRAPHIC
LDA PAGEI
JSR WAITLONG
LDA PAGE2
JSR WAIT
BIT KBD
BPL LOOP
BIT STROBE
RTS
* Verzögerung durch LDA DUMMY
WAITLONG LDA DUMMY
WAIT LDY #$pF
LOOP1 LDX #$09
LOOP2 INX
BNE LOOP2
DEY
BNE LOOP1
LDX #$C1
DEX
BNE LOOP3
RTS
QSQVDODVDDDDUDDWD
SOovovo ‘91 AP uam
N
m
B31E: A5
KREIS.3 0320: A®
0322: A2
1d REM KREIS.3 von H.-D. Siewert, Dez. 1984 0324: E8
20 TEXT : NORMAL : HOME : HGR :0 = ®:P = 3.1415926535 / 0325: DY
180:F = .5:X1 = 70:X2 = 140:X3 = 210:Y = 90:R = 50 0327: 88
3d FOR Z = 0 TO 369: HCOLOR= 3:S =R #SIN (Z* P):;C=R«* 0328: DP
COS (Z *& P): REM Sinus- und Cosinuswerte berechnen 0324: A2
385 HPLOT X1 + S + F,Y + C: HCOLOR= 7: HPLOT X2 + S,Y + C: Ö32C: CA
HCOLOR= 3 + 4 * (S - F > INT (S)): HPLOT X3 + S,Y + 032D: D®
C: NEXT : REM Alle drei Kreise auf Seite 1 zeichnen, Ö32F: 6®
Kreis l nach Methode 2, Kreis 2 normal, Kreis 3 nach
Methode 1 48 Bytes
HGR2 : FOR Z = 0 TO 369: HCOLOR= 7:S =R * SIN (Z *
P)}:C=Rx COS (Z * P): REM Sinus- und Cosinuswerte
berechnen
HPLOT X1 + S,Y + C: HPLOT X2 + S,Y + C: HCOLOR= 3 +4 «
(S- F > INT (S)): HPLOT X3 + S,Y + C: NEXT : REM
Alle drei Kreise auf Seite 2 zeichnen, Kreis 2 und 3
wie auf Seite 1, Kreis 3 modifiziert KOMPRESSOR
50 PRINT CHR$ (4)"BRUN FLIPPER": REM FLIPPER starten
60 GET XY$: IF XY$ < > CHR$ (27) THEN CALL 768: GOTO 69:
REM Wenn das Bild steht (FLIPPER außer Betrieb),
kann man mit ESC das Programm verlassen
78 TEXT
KOMPRESSOR.DEMO
1® REM KOMPRESSOR.DEMO von H.-D. Siewert, Dez. 1984
20 NORMAL : HOME : HGR2 : HCOLOR= 7: HPLOT 279,0 TO 9,96
TO 279,191: HPLOT ®,8 TO 279,191: HPLOT 279, TO
0,191
25 REM In Zeile 2® wird die eine Hälfte des Bildes auf
HGR2 gezeichnet.
30 HGR : POKE - 1632,09: HPLOT 9, TO 279,96 TO 9,191:
HPLOT 9,8 TO 279,191: HPLOT 279,8 TO 9,191
35 REM Die andere Hälfte des Bildes wird auf HGR
gezeichnet.
A® PRINT CHR$ (4)"BRUN KOMPRESSOR": PRINT CHR$ (4)"BRUN
FLIPPER"
50 GET XY$: REM Nachdem das Bild gezeichnet wurde, werden
KOMPRESSOR und FLIPPER gestartet.
Do a U a au oa oa Wo
So oao IV TI AU D
BRHnH»
BO DdH
HINWEIS: Die Zeitverzögerung der Warteschleife kann sehr genau
abgeglichen werden. Die hier angegebenen Werte wurden
empirisch ermittelte, um ein maximal flimmerfreies
Bild zu erhalten.
BR
KOMPRESSOR
Dieses Programm faßt unter
Ausnutzung des Farbbits
beide Grafik-Seiten so zu-
sammen, daß sie nebeneinan-
der dargestellt werden kön-
nen
Von H.-D. Siewert, Dez. 84
vo oıou uw vr
«AK KKKKKKFKOKRKH
x Kr kr: KK
KRFKFKFFRHFKRHKFRRFRKRFR FR FF FH TH HK FH FH KH FH
ORG $89090
EQU $96
EQU $CE
EQU $CF
EQU $FA
EQU $FC
EQU $FE
Dreher H 6b
SovtvNn9 uw mw Ha
DD 8
DD m
18 Peeker 6/85
Sie müssen
käalkulatenen erstellen ...
Se mussen
Rechnungen Schreiben...
Sie müssen Schnell eın
Angebot usanmenskellen...
Sie brauchen eine zuver-
Km Lagervenaltuug
Daw braucheu Sie
HandMac
Das Rrogramm für das Handwerk.
® Oas Ihnen diese Arbeiten abnimmt
© das peziel für Sie in Deutschland
ge wurde
® das Sie start benutzen können |
ohue wehrwöchae. Schuluu
Ome Qitenstar rer,
HandMac |
Das Prayrwern für das Handwerk. |
(äuft auf Apple Macintosh und gibt es nur
in Autprisıerten Tachlhaudel
Juforuahou: copy team gmbh
a Schuhstr. 92
3520 erlangen
OUSA— U3S
Apple und Macintosh ömd eingehngene Wrenzsichen des Apple Coupuler Une.
Be en.)
Ba Be B en
Pod SE DE DE SR SE DE DE DE DE DIE DE DAL DE DIE DIE DE DE DE DIR DIL DE DIL DE DE DIE DIE DIE DIE DIR DIR DIE DIE DIE DIE DE 7
» ae FREE EEE DE I BE DE DIE DIE DIEBE DIE DIR. DIE DIE DILDIE DIE PIC DI DIE DIL PIE DIDI DIL HIL PIE PI PIPPI)
Draonon S2lel
300 Baud Modem, nach CCITT V.21 Standard,
mit FTZ-Nr. 18.13.1917.00,
Gebühren- und anmeldefrei,
V24/RS-232 Standard-Schnittstelle
(25-Pin), Vollduplexbetrieb, Answer-,
Originate- und Auto-Modus nur DM 298,00
TELEKOMMUNIKATIONS _- KOMPLETT - PAKET
geeignet für Apple //+ und Apple //e:
I Dataphon s2Id,
I Anschlußkabel (RS-232-Schnitt-
stelle zum Apple Il-Gameport),
I Terminalprogramm:
"HIB Modem-Transfer” nur DM 398,00
AKUSTIK-KOPPLER
TELEKOMMUNIKATION am Apple I IC:
Anschlußkabel (Akustik-Koppler
zum Modemport am Apple //c) DM 114,00
ASCII-PRO (ASCII-Express)
Kommunikationsprogramm für
alle Apple //-Rechner geeignet DM 489,00
Chinon-Laufwerk (Testbericht in Peeker 5/85)
für Apple //+ und Apple //e
anschlußfertig im Gehäuse DM 498,00
w.o. jedoch für Apple //c DM 569,00
TOSHIBA _Spitzenlaufwerke _ zum _Superpreis!
ND 06-D, 2 x 80 Track DM 549,00
ND 04-D, 2 x 40 Track DM 498,00
DISK-DOPPEL-STATION (APPLE //+ APPLE /le
2 x ND 06-D im Gehäuse
+Auto-Patch-Controller DM 1698,00
AUTO-PATCH-CONTROLLER DM 298,00
BROTHER-Matrixdrucker, die_Super-Drucker!
M-1009 (Matrixdrucker
RS-232 + Centronics) DM 698,00
M-1009 anschlußfertig an:
Apple //c (mit Kabel) DM 798,00
Apple //e (mit Graphik-
Interface und Kabel) DM 898,00
HR-15 XL, Typenraddrucker der Spitzenklassel
mit Centronics-Interface DM 1698,00
HR-15 XL anschlußfertig an:
Apple //c DM 1898,00
Apple //e DM 1998,00
Apple Macintosh DM 1998,00
HR-10, der neue Low - Cost - Typenraddrucker
für alle Rechner geeignet DM 998,00
Alle Preise inclusive der gesetzlichen Mehrwertsteuer.
Berechnung der Versandkosten erfolgt nach Entfernung und Gewicht.
Fordern Sie noch heute unsere Gratispreisliste an! Wiederverkäufer
bitte nur schriftlich anfragen (Kopie der Gewerbeanmeldung beilegen!).
o HIB Computerladen
Außere Bayreuther Str. 72
Postfach 21 01 25
8500 Nürnberg 21
Telefon: 0911 / 515 939
Telex 17 - 911 8253
8075: D® EA BNE MOVE
8077: 60 RTS
Unterprogramme
CONVERTA gliedert das erste
Byte in zwei neue Bytes auf.
Mit CONVERTB wird das zweite
Byte aufgegliedert und füllt
die beiden neuen Bytes auf.
CALC berechnet die Anfangs-
adresse der jeweiligen im
Akkumulator gespeicherten
Grafikzeile.
STORE speichert die neuen
mit CONVERTA und CONVERTB
gebildeten Bytes ab.
8078: CONVERTA LSR
8079: ROR C
8OTB: LSR
8DTC: ROR D
8QTE: LSR
8OTF: ROR
8081: LSR
8082: ROR
8084: LSR
8085: ROR
8087: LSR
8088: ROR
EDBA: LSR
808B: ROR
808D: RTS
808E: CONVERTB LSR
808F: ROR
8091: LSR
8092: ROR
8094: LSR
8095: ROR
8097: LSR
8098: ROR
SO: LSR
809B: ROR
809D: LSR
809E: ROR
8DAB: LSR
8DAl: ROR
' 8BA3: ROR
8045: ROR
80A7: RTS
8DAB: TAX
8DA9: AND
8QAB: STA
80AD: LSR
8PAE: LSR
BOAF: ORA LBAS
80Bl: STA LBAS
80B3: TXA
80B4: STA LBAS+1
80B6: ASL
80B7: ASL
80B8: ASL
80B9: LBAS+1
80BB:
8DBC: LBAS+1
80BE:
80BF: LBAS
80C1: LBAS+1
80C3: #$1F
80C5:
8ödc6E: +$20
80C8: LBAS+1
8OCA:
80CB: +$40
80CD: MBAS+1
8ÖCF: +$29
80D1: HBAS+1
80D3: LBAS
80D5: MBAS
80D7: HBAS
80D9:
80DA:
80DB: D
STX LOOP+5 8ODD: +$80
LDA $6000,Y & HBAS),Y
STA $4000,Y en : E
INY 80E3: +#$7F
8DES5: (LBAS),Y
8DE7:
8DES:
#369 233 Bytes
Als erstes wird das Bild
in Seite 1 aufgeteilt
und die eine Hälfte in
Seite l abgespeichert,
die andere Hälfte in Seite 3.
Seite 3 beginnt bei $6Pd9
und kann ohne Hardware-
änderungen nicht darge-
stellt werden.
*R KK KK KA KH KR
CLD
LDA #$09
STA YPOS
LDY #$9®
JSR CALC
NEXTXl LDA (LBAS),Y
JSR CONVERTA
INY
LDA (LBAS),Y
JSR CONVERTB
TYA
LSR
JSR STORE
ASL
TAY
INY
INY
CPY +#$28
BNE NEXTX1
LDA YPOS
ADC #$09
CMP #$c®
BNE NEXTYL1
“RK KK KKKKAKIFK KINN
Hier wird dasselbe wie
oben für Seite 2 durch-
geführt. Dabei wird wieder
die eine Hälfte in Seite 1
und die andere in Seite 3
gespeichert; diesmal aber
in der rechten Hälfte der
beiden Seiten.
*
*
*
*
*
*
*
*
*
*
LDA +#$99
STA YPOS
LDY +#$99
JSR CALC
NEXTX2 LDA (MBAS),Y
JSR CONVERTA
INY
LDA (MBAS),Y
JSR CONVERTB
TYA
LSR
CLC
ADC
JSR
SEC
SBC
ASL
TAY
INY
INY
CPY #$28
BNE NEXTX2
LDA YPOS
ADC +#$09
CMP #$c9
BNE NEXTY2
CLC
Hier wird als letztes das
Bild in Seite 3 nach Seite 2
bewegt, wo es das alte Bild
verdeckt.
LDX #$49
LDA +#$69
STA LOOP+2
LDY #$00
LOOP
LOOP+2
20 Peeker 6/85
Peeker-Sammeldisketten
Peeker
Sammeldiskette
Heft 1 und 2, 1984
Disk #3
Einzelbezug DM 28,—
INSTRING.TEST (2/84, S. 43)
INSTRING.OBJ
T.INSTRING.OBJ
INSTRING.LISA.SOURCE
LOESCHEN.EINES.ARRAYS
(2/84, S. 52)
ULTRATERM.ENGLISCH * (2/84, S. 60)
ULTRATERM.DEUTSCH *
PRIMZAHLEN.OVERMEYER *
(2/84, S. 70)
PRIM.OBJO *
PRIM.OBJ1 *
PRIM.TEST *
PRIM.TOOLKIT.SOURCE *
Disk #2
(Heft 1-2, 1985, DOS-Format)
T.VIDEXT
VIDEXT.LISA.SOURCE
VIDEXT
GETPAS (1-2/85, S. 70)
T.GETPAS.ASS *
GETPAS.ASS
GETDOS.PASCAL.SOURCE
COPYDUPDIR.PASCAL.SOURCE
PRODOS.EDITOR.MACROS
(1-2/85, S. 86)
Disk #3
(Heft 1-2, 1985, CP/M-Format)
STEUER.84 (1-2/85, S. 47)
PASS.BAS
XPLOT.DEMO (4/85, S. 18)
XPLOT.ROUTINE
T.XPLOT.ROUTINE
MENUE.GENERATOR (4/85, S. 22)
T.MACROS.65C02 (4/85, S. 31)
TERMINAL (4/85, S.36)
TERMINAL.B
T.TERMINAL.B
CAT.ARRAY (4/85, S. 44)
CAT.SAVER
EINTRAG.SUCHER
EINTRAG.ANALYSE
PRODOS.READER
T.PRODOS.READER.OBJ
PRODOS.READER.OBJ
MOUSESTUFF.PASCAL.SOURCE
(4/85, S. 51)
MOUSE.ASS.PASCAL.SOURCE
TESTMOUSE.PASCAL.SOURCE
T.RAMDISKLC (1-2/85, S. 14) MENUE.BAS DRAWMOUSE.PASCAL.SOURCE
PoreezungSpezug DM EN RAMDISKLC HELP.BAS *
(Jederzeit kündbar, jedoch mindestens A.BAS INALL.DATA (4/85, S. 70)
en BR T.IBS.RAMDISKDRIVER (1-2/85, 5.20) B.BAS SCREEN80.DATA (4/85, S. 33)
y — NUT ale DIEKBNS niet Im Feeket (ES BAMDISKORIVER C.BAS SCREEN80.SAVER (4/85, S. 76)
gelistet! Seitenangaben beziehen sich T.AP20.RAMDISKTEST D.BAS
auf Beginn des Listings) AP20.RAMDISKTEST E.BAS
Hüthig Software Service FBAS
Postfach 102869 - 6900 Heidelberg 1 T.QUICKCOPY (1-2/85, S. 26) G.BAS Disk #5
QUICKCOPY H.BAS (Heft 5 1985, DOS-Format)
QUICKCOPY.PUFFER .BAS
PRODOS.COPYA J.BAS T.FM.BSP (6/85, S. 9)
T.PRODOS.COPYOBJ * K.BAS FM.BSP
PRODOS.COPYOBJ L.BAS
Disk+ 1 MLBAS T.SLOTRAMDISK (5/85, S. 13)
(Heft 1+2, 1984) N.BAS SLOTRAMDISK
SLOTRAMDISK.HELLO
T.DISASSEMBLER.65C02 (1/84, S. 15)
DISASSEMBLER.65C02 PLOT.2.0 (5/85, S. 20)
T.PLOT.B
T.ACCEL.WAIT (1/84, S. 22) PLOT.B
ACCEL.WAIT PLOT.PROTECTOR
T.ACCEL.BOOT Disk +4
ACCEL.BOOT (Heft 3 + 4, 1985) T.CONVERT560 (5/85, S. 26)
ACCEL.LC.KOPIERER
T.ACCEL.LC.KOPIE
CONVERT560
CONVERT560.DEMO
Peeker
Sammeldiskette TESTGENERATOR (3/85, S. 26)
ACCEL.LC.KOPIE Heft 1 und 2, 1985 SAETZE
T.ACCEL.ROM.KOPIE1 DOS 3.3 BAHNFAHRT * T.EDA (5/85, S. 33)
ACCEL.ROM.KOPIE1 ZU * EDA
TACCELROMKOPIEE nn 0. TUN.UND.SOLLEN *
ACCEL.ROM.KOPIE2 IRGEND * TRANSCEND.PASCAL.SOURCE
(5/85, S. 36)
TURTLE.GRAFIK.MIT.REMS (1/84, S.29)
TURTLE.GRAFIK.OHNE.REMS *
MULTIPRECISION (3/85, S. 32)
T.BLOCKTRACER (5/85, S. 51)
T.WS.TRANSFER (3/85, S. 36) BLOCKTRACER
DOUBLE.LORES.SOFTSWITCHDEMO a WS.TRANSFER T.BLOCKTRACER1
(1/84, S. 37) T.WS.TRANSFER.2 * BLOCKTRACER1
DOUBLE.LORES.APPLESOFT.DEMO
AMPER.DOUBLE.LORES.DEMO
T.AMPER.DOUBLE.LORES
AMPER.DOUBLE.LORES
T.DOUBLE.LORES
DOUBLE.LORES
PRODOS.PATCH (1-2/85, S. 31)
WS.TRANSFER.2 *
GETCPM
PRIM.0.5C.SOURCE (3/85, S. 62)
PRIM.O.BIN
PRIM.1.5C.SOURCE
FORMAT.LC (5/85, S. 56)
FORMAT.LC.START
T.DISKDRIVER.DEMO
DISKDRIVER.DEMO
T.APPLESOFT.FRE (1-2/85, S. 36) PRIM.1.BIN RANDOM.DEMO (5/85, S. 69)
HIRES (1/84, S. 41) T.LC.FRE PRIM.FP COLUMN80.DEMO
T.PRINTHIRES LC.FRE
PRINTHIRES FRE.TEST ACCELERATOR.ABSTELLEN SUPERDUMP.EPSON (6/85!)
T.RAM.FRE * (3/85, S. 66) SUPERDUMP.IMAGEWRITER
DHGR.APSOFT.DEMO (2/84, S. 30) RAM.FRE SUPERDUMP.BILD
AMPER.DOUBLE.HIRES.BAS T.WILDCARD.TEST * (3/85, S. 72) T.SUPERDUMP
AMPER.DOUBLE.HIRES T.SCHIRMDISK (1-2/85, S. 44) WILDCARD.TESTI1 * SUPERDUMP
T.AMPER.DOUBLE.HIRES SCHIRMDISK.LISA.SOURCE T.WILDCARD.TEST2 * EPSON
DHGR.LINEPLOTTER SCHIRMDISK WILDCARD.TEST2 * IMAGEWRITER
Peeker 6/85
21
Auf vielfachen Wunsch bringen wir hier eine Neuüberarbeitung des im Peeker
Heft 1/84 vorgestellten Dump-Programms. Bei der Überarbeitung wurde
besonderer Wert auf die Kompatibilität mit den meisten Druckern und Interfaces
gelegt. Außerdem bietet SUPERDUMP eine Reihe neuer Features wie Double-
Hires-Grafik, Druckern von mehreren Bildern nebeneinander usw.
Superdump
Das universelle Hires-Grafik-Dump-Programm
von Jürgen Geiß
!
‘s
.n.: EI MH er ! =: Er x h :
= ER . iM E > 5 AL ARN - Y y
D ee nen u 2 020 ann x u [2 ur IR h . = 22 ;
HE r ‘ / DZ 2 I Zu. “ \ . : BL’ I y
H “- . [ j » iz
Hu Ak r E St: ER. To‘ A
Hi Bl er = r == 17 a PAAN
{ . r x = N RE DR
un | M f ir Feen Y > um, * €
Fr IT Hl As a sr: \
r r fi | Mil u Kar, ’ [7 ; . i r = n A = » won
=; (Er Klin, are a “ = ring au SE
(@ no tiö MI ER - , |, & ä 3
> iR, Dirt. - - - J , € j
9, u : . un 30 . L ü *. = = Be 2 .
[IFReTTEL REN! i f *- 3 a. Be N 2 vr nr \ # / “
wit UM ta ji ar. A m g (In get OR 4 ö
HIHI) 3 E > P rss _ Br is
. e = , n = . R f |
% "N
' d %
\ um «
|
WIE
= BE FEFE SISEESe3BERTIBTBEREEFLLLE! Ah j
N, / —
Bild 1: Linke Hälfte, nicht gestaucht
Nach Veröffentlichung der ersten Version
riefen viele Leser bei der Peeker-Redak-
tion an und fragten den ohnehin schon
gestreßten Chefredakteur Löcher in den
Bauch. So traten Fragen auf wie „Bei mir
wird immer nur eine Zeile gedruckt und
dann nichts mehr!“ oder „Ich habe keinen
Epson-Drucker, was muß ich modifizie-
ren?“ usw., die Herr Stiehl natürlich nicht
alle beantworten konnte. Da aber die
Peeker-Leser, die nicht gerade einen Ep-
son-Drucker mit Parallel-Interface besit-
zen, auch in den Genuß einer Hardcopy
der Hires-Grafik kommen sollten, mußte
eine ganz neue Lösung gefunden werden.
Aus der Aufgabenstellung heraus, eine
Hardcopy hardwareunabhängig (Drucker,
Interface) ausgeben zu können, ergaben
sich zwei Probleme, die gelöst werden
mußten.
1. Problem: Die Druckersteuerzeichen
Wer schon einmal einen Text, der mit
Steuerzeichen für Fettschrift, Kursivschrift
etc. gespickt ist, auf zwei Druckern ganz
verschiedenen Typs ausgegeben hat, der
wird wissen, daß mindestens einer der
Ausdrucke total „daneben war“. Nur im
seltensten Fall findet man zwei Drucker,
die zueinander vollständig kompatibel
sind.
Leider gibt es für Druckersteuerzeichen
keine Norm außer den wenigen Zeichen
wie CR (Wagenrücklauf) oder LF (Zeilen-
vorschub). Aber sogar hier gibt es Unter-
schiede. Der eine Drucker benötigt ein LF
nach CR, der andere wiederum nicht.
So verhält es sich auch mit dem Umschal-
ten auf Grafikbetrieb. Epson verlangt bei-
spielsweise <ESC> „K“ und anschlie-
Bend die Anzahl der Grafik-Bytes im Low/
high-Format, Apples Imagewriter dagegen
<ESC> „G0280“ für 280 Grafik-Bytes.
Peeker 6/85
Bild 2: Beide Hälften, gestaucht
Man kann also von einem Programmierer
nicht verlangen, daß er die Steuercodes
aller Drucker kennt. Wenn nicht er, wer
aber dann? Nehmen wir doch der Einfach-
heit halber einmal den Druckerbesitzer
(oder auch nur den Anwender). Beim Aus-
packen eines Druckers findet man übli-
cherweise ein mehr oder weniger gutes
Handbuch mit einer Tabelle aller für diesen
Drucker gültigen Steuerzeichen.
Hier muß nun der Programmierer anset-
zen. Er verlangt vom Benutzer, daß er im
Handbuch die nötigen Steuercodes nach-
schlägt und die Daten dem Programm zu-
kommen läßt. Leider gibt es ein noch
schwierigeres Problem, was tage- (und
nächte-)langes Brüten verursachte.
2. Problem: Das Interface
Es gibt weitaus mehr Schnittstellen denn
Drucker. Es gibt deren so viele, daß der
Programmierer unmöglich wissen kann,
wie diese softwaremäßig anzusteuern
sind. Nun besteht natürlich die Möglich-
keit, von Applesoft aus mittels des PR#-
Befehls die Ausgabe vom Bildschirm auf
den Drucker umzulenken, um anschlie-
Bend von Assembler aus über $FDED (=
COUT = Character Output) die Zeichen an
den Drucker zu senden. Die Sache hat
allerdings einen Haken. Beim Drucken von
Grafiken können alle möglichen Bitmuster
(von $00 bis $FF) auftreten. Da es aber für
jedes Interface wiederum Steuerzeichen
gibt, um es zu programmieren, kann es
vorkommen, daß der „Command-Charac-
ter“ auch bei einem auszudruckenden Bit-
muster auftritt. Bei einem parallelen oder
seriellen Interface ist dies zum Beispiel ein
<Ctrl-]I> CHR$(9). Dieses Grafik-Byte
und einige darauffolgende würden dann
vom Interface verschluckt werden.
Leider kann das Interface-Problem nicht
auf den Anwender abgewälzt werden, da
dieser genaue Kenntnisse über die Firm-
ware seines Interfaces haben müßte, um
zu erkennen, welche I/O-Adressen für
seine Karte zuständig sind. Das aber kann
man nicht von ihm verlangen. Also was
tun?
Wer sich schon näher mit dem Pascal-
Betriebssystem, insbesondere mit dem
BIOS (Basic Input Output System) befaßt
hat, findet eine Lösung dieses Problems.
Pascal erkennt fast alle Schnittstellen und
arbeitet problemlos mit ihnen.
Dies funktioniert wie folgt:
1. Hole das 5. und 7. Byte aus dem ROM
des jeweiligen Slots (bei SUPERDUMP
nur $C105 und $C107) und vergleiche die
Werte mit einer Tabelle für die verschiede-
nen Interface-Typen. Es gibt deren 5: Pa-
rallel-, Seriell-», Communications-, Disk-
und Firmware-Karten.
2. Sende das Zeichen entweder über die
genormten I/O-Adressen gemäß den obi-
gen Typen (bei Parallel- oder Communica-
tions-Karte) oder springe die genormten
Adressen im Slot- bzw. im ROM-Bereich
an (bei Seriell- oder Firmware-Karten).
Bei letzteren gibt es allerdings noch eine
Sonderregel, die unbedingt beachtet wer-
den muß. Da bei diesen Karten direkt in
das ROM der Karte gesprungen wird,
übernehmen diese wieder die weitere
Steuerung und eventuelle Filterung durch
den „Command-Character“. Bei diesen
Karten gibt es aber meistens einen Steu-
ercode, der einmalig gesendet werden
muß, um zu verhindern, daß irgendwelche
Bitmuster als Steuercode interpretiert wer-
den. Bei Apples Super-Serial-Interface
(SSC) ist dies z.B. <Ctrl-I> „Z“ <RE-
23
TURN> (siehe Handbuch), was von Ap-
plesoft aus leicht durch folgende Zeilen
realisierbar wäre:
10 PRINT CHR$(4); “PR#1“
20 PRINT CHR$(9); "Z“
30 PRINT CHR$(4); “PR#0“
Wenn also nach anfänglich erfolgreichem
Drucken auf einmal Buchstaben statt Gra-
fik gedruckt werden, dann erst im Hand-
buch zum Interface nachschlagen, ob es
nicht solch einen Code gibt und diesen
dann vor dem Drucken senden.
Nun aber genug der Theorie.
I M M IN] 1 1] zu Il
ie A Il # AN
ni on " E P =. Earl;
Bild 3: Normales Double-Hires-Bild
Was bietet SUPERDUMP?
Da nicht alle Peeker-Leser auf das Heft 1/
84 zurückgreifen können, folgt hier eine
Aufzählung aller Features von SUPER-
DUMP:
® durch Angabe eines Kontrollblocks für
Druckersteuerzeichen druckerunab-
hängig,
® i-, 2-, oder Afacher Druck (für beson-
ders schwarze Dumps),
® positiver oder negativer Druck
(schwarz auf weiß oder weiß auf
schwarz),
® horizontaler oder vertikaler Druck,
® Umrandung von Bildern,
® durch Angabe der Bildadresse (z.B.
$2000 für Seite 1) speicherunab-
hängig,
@® mehrere Bilder können nebeneinander
wiederholt werden,
®@ Bildauschnitte können gewählt werden,
® Vergrößerung in X- und Y-Richtung
(Zoom),
® Dump der Apple Ile/lic Double-Hires-
Grafik direkt aus dem Bildspeicher,
® automatischer Zeilenvorschub bei CR
ein/ausschaltbar,
® Drucken eines großen Bildes durch
Aufspaltung in Teilbilder,
® Richtung der Druckernadeln wählbar,
® Konvertierung von Double-Hires-Bil-
dern nach normal und umgekehrt.
24
Diese Features werden durch die sog.
Übergabeparameter in der Seite 3
($0300) gewählt, die in Tabelle 1 zusam-
mengestellt sind. Es folgt eine nähere Er-
lauterung einzelner Parameter:
Kontrollblock-Nummer ($0300) — Wie
oben erwähnt, gelten für verschiedene
Drucker verschiedene Steuerzeichen.
Diese müssen in einem oder mehreren
Kontrollblocks (KB) abgelegt werden. Mit
der Übergabe der KB-Nummer kann einer
der Blöcke selektiert werden (z.B. zur Ein-
stellung von Horizontal- oder Vertikal-
druck). Der Aufbau eines Kontrollblocks
sieht wie folgt aus:
Die Länge eines KBs beträgt 64 Bytes.
Diese leitet sich ab aus der Länge von 4
Strings zu je 15 Zeichen, an deren Beginn
das Länge-Byte stehen muß. Die 4 Strings
haben folgende Bedeutung:
—- String #1 = Pinit: Beinhaltet die Initiali-
sierungssteuerzeichen wie Zeilenabstand,
unidirektionaler Druck etc., die zu Beginn
eines Druckvorgangs einmalig gesendet
werden müssen. Achtung: Der Zeilenab-
stand muß bei horizontalem Druck 8 Na-
deln, bei vertikalem Druck 7 Nadeln be-
tragen.
— String #2 = Pline: Steuerzeichen zum
Umschalten des Druckers auf den Grafik-
betrieb. Diese Zeichen werden vor jeder
Druckzeile ausgegeben.
— String #3 = PIf1: Steuerzeichen für 1/
216“ oder 1/144“ Zeilenvorschub (wird
nur bei 2- und Afach-Druck benutzt).
— String #4 = Pexit: abschließende Steu-
erzeichen wie bidirektionaler Druck, Zei-
lenabstand auf alten Wert etc.
In Tabellen 2 sind die Werte für die Ep-
son-Drucker und den Imagewriter wieder-
gegeben. Diese Hex-Dumps sollten durch
BSAVE EPSON (oder IMAGEWRITER),
A$9000, L$80 gespeichert werden.
Bei der Erstellung eigener Kontrollblöcke
ist zu beachten, daß sich die Parameter-
blöcke nicht mit dem Assembler- ($8000-
$86C6) oder einem Applesoft-Programm
(ab $0800) überlappen.
Mehrfachdruck ($0304) — Bei 2- und
Afachem Druck wird versucht, das Papier
um 1/216°“ oder 1/144” vorwärts zu
schieben, um nochmals die gleiche Zeile
zu drucken. Der aufmerksame Leser, der
einen Epson-Drucker besitzt, wird viel-
leicht bemerkt haben, daß bei Pinit der
Zeilenabstand des Druckers nicht wie er-
wartet auf 24/3 = 8 Bits initialisiert wurde,
sondern nur auf 23/3 Nadeln. Die restliche
1/3 Nadel besorgt dann der PIf1-String.
Auch bei einfachem Druck wird dieser
String zum Drucker gesendet, wenn er
nicht die Länge O hat. Es wird dann ledig-
lich der fehlende Zeilenvorschub nachge-
holt. Wer will, kann auch in Tabelle 2 den
Abstand auf 24:3 = 8 Bits stellen und
den PIf1-String auf O setzen. Für vertika-
len Druck gilt dasselbe.
Teilbilder ($0322) — An dieser Stelle
möchte ich mich ganz herzlich für die posi-
tive Kritik an der Erstversion des Dump-
Programms von Herrn N.G. Barbieri be-
danken, bei dessen Graf-quattro-Editor
(Peeker Heft 4/85) diese Neuversion
durch den DiffPics-Parameter (wie er im
Assemblerlisting genannt wird) bestimmt
Verwendung finden wird. Beim Drucken
seiner 560 * 384-Punkte-Grafiken muß
dann wie folgt vorgegangen werden: La-
den der beiden Teilbilder 1 und 2 in Hires-
Seite 1 und 2, Parameter wie im Beispiel
angegeben setzen, dann die Bilder 3 und
4 laden und nochmals drucken (wie oben).
Kommando-Byte ($0326) — Anwendung
für Kommando 1 und 2: Vor dem Abspei-
chern eines Double-Hires-Bildes muß die-
ses aus der 64K-Karte in das Main-RAM
geschoben werden (1); nach dem Laden
entsprechend umgekehrt (2).
Modifizierung und Anwendung der
Programme
Das Assembler-Programm muß mit
„BRUN SUPERDUMP gestartet werden,
nachdem es mit „BSAVE SUPERDUMP,
A$8000, L$6C7“ gespeichert wurde, und
kann dann von Applesoft aus über den &-
Vektor aufgerufen werden.
Wegen der Länge des Quelltextes, der
mehr als 1000 Zeilen umfaßt, kann hier nur
ein Hex-Dump abgedruckt werden.
Für all diejenigen, die die Paramaterüber-
gabe in Seite 3 nicht selbst übernehmen
wollen, gibt es die Applesoft-Rahmenpro-
gramme SUPERDUMP.IMAGEWRITER
und SUPERDUMP.EPSON, die dies be-
sorgen. Für andere Drucker müssen fol-
gende Zeilen geändert werden:
1000: PF$ ist der Printerfile, in dem die
Grafiksteuerzeichen stehen. Dieser File
muß vorher, am besten mit dem Drucker-
namen, abgespeichert werden. Dabei
spielt die Adresse keine Rolle, denn diese
wird in Zeile 1500-1510 nach dem Laden
automatisch ermittelt. Achtung: Dies gilt
nur für DOS 3.3 und nicht für ProDOS! Am
Peeker 6/85
besten benutzt man Block #0 des Printer-
files für horizontalen und Block #1 für
vertikalen Druck (siehe Tabelle 2).
1010: DG ist der Grundeinstellungswert
des Grafikmodus des benutzten Druckers,
wenn ein Double-Hires-Bild mittels
Grundeinstellung gedruckt werden soll.
Da ein Double-Hires-Bild in X-Richtung
doppelt so eng auf dem Bildschirm er-
scheint, sollte auch für den Drucker ein
entsprechend enger Grafikmodus gewählt
werden. Beim Epson sollte dieser Wert 2
(960-Punkte-Grafik), beim Imagewriter 4
(1152-Punkte-Grafik) sein.
1020: NG ist der Grundeinstellungswert
für die Richtung der Drucknadeln. Für ei-
nen Epson-Drucker muß dieser Wert O
sein, für Imagewriter 1.
3280-3350: Diese Zeilen haben folgende
Bedeutung: Sie stellen dem Benutzer die
Anzahl der Grafik-Bytes pro Druckzeile in
3 verschiedenen Formaten zur Verfügung:
1. BT ist die Anzahl der Bytes als Integer-
Zahl |
2. BL, BH ist die Anzahl der Bytes im Low/
high-Format (für Epson-Drucker etc.)
3. BT$ ist die Anzahl der Bytes im String-
format (für Imagewriter etc.)
3400 - Ende: Menü der verschiedenen
Grafikmodi für einen speziellen Drucker
(siehe entsprechende Werte für Epson
und Imagewriter). Die Modi entnimmt man
den Druckerhandbüchern. Anschließend
muß die Anzahl der Grafik-Bytes in den
entsprechenden Parameterblock gepokt
werden. Dies besorgen die letzen 2
Zeilen.
Achtung: Die Länge des Applesoft-Pro-
gramms inklusive Variablen sollte $2000
nicht überschreiten, wenn aus Seite 1 ge-
druckt werden soll.
Hinweis für Assembler-Programmierer,
die das Applesoft-Rahmenprogramm nicht
benutzen wollen: Die Parameter auf Seite
3 müssen selbst an das Druckprogramm
übergeben werden. Diese können aber
vorher schon abgespeichert worden sein
und brauchen dann nur noch — wie auch
der Printerfile für die Druckersteuerzei-
chen — geladen werden.
Für die Benutzung der Applesoft-Rahmen-
programme sind in Tabellen 3 die Einga-
ben für die einzelnen Beispielbilder wie-
dergegeben.
Und nun viel Spaß beim Drucken. Übri-
gens: Wenn nicht alles gleich auf Anhieb
klappt, nicht verzagen. Erst probieren,
dann anrufen.
Peeker 6/85
Hinweis: Wegen der großen Nachfrage
wurde SUPERDUMP in den Versionen für
Imagewriter und Epson bereits in die
Peeker-Sammeldisk #5 aufgenommen
SUPERDUMP
BSAVE SUPERDUMP, A$8009, L$6C7
$s000: A9 11 8D F6 P3 AY 80 8D
$sods: FT 03 20 CA 85 20 FB 85
$801P: AD 26 93 FP c9 @1
$8P18: 03 AC E3 84 02 D®
$802P: 4C E9 84 C9 D® #3
$8028: 48 85 C9 4A 03 AC
$803P: 85 69 AD 1E FO 12
$8038: 6D 83 AD 54 AD 57
$8049: AD 5E CO 8D cp
$8048: CO AD PA 93 03
$805P: 83 20 AA 83 08
$8058: 03 AC 8l El
$806P: 16 93 31 A9
$8068: 39 93 8F AD
$8079: CD IC Fo EE
$8078: 4C 6B AD 03
$808P: 08 8D 03 18
$8088: DC F® ac 83
H809p: 83 29 80 3E
58098: 3A 03 F5 9C
$8HAP: 5D 83 d4 Ed
$8HAB: 07 E® Dp 29
$80BP: 20 2F 20 80
$80B8: 83 CE 03 F5
$80CQ: 83 69 "W) 3D
$80C8: 12 93 38 AC
$80DP: sc 34 AD 03
$8HD8: 03 A9 8D 03
$8QEP: 03 29 84 c9
$8QES: 38 93 CA FC
$8pFp: 03 CE d3 IF
$80F8: 03 CD 03 6
$819p: 03 AC 80 FF
$8198: 03 DA 36 D®
$811P: 3F 03 B2 A®
$8118: 32 03 1C
$8129: 03 8E
$8128: n]) E8
$8139: D® CE
$8138: E8 DC
$8149: 8E 08
$8148: 03 02
$8159: 2A CE
$8158: EA 20
$8169: 1A 83
$8168: AC 15
$8179: AD
$8178: EE
$8189:
$8188:
$8199:
$8198:
H81AB:
H81A8:
$81BP:
$81B8:
HElcQ:
$8lc8:
$81D9:
$81D8:
$81EP:
$81ES:
$81Fß:
$81F8:
58299:
58298:
58219:
$8218:
$8229:
$8228:
$8239:
$8238:
58249:
58248:
$8259:
25
125® REM
1260 TEXT : PRINT CHR$ (12): HOME
1270 PRINT" akakak aka akaleakakakakakakakakakakakakaenk""
1280 PRINT "*x SUPERDUMP x"
1298 PRINT "* von Jürgen Geiß x"
1300 PRINT "x März 1985 u
131® PRINT!" akakak aka ak aka ak aka ak aleaeak akeaakakakak ak ""
1328 PRINT : PRINT D$"BRUN SUPERDUMP"
1330 PRINT : PRINT "Augenblicklicher Drucker: ";PF$;
1348 PRINT : PRINT "Schnittstelle: ";
1350 ON PEEK (IN) GOTO 1369,137®,1389,1399, 1499, 1419
1369 "Super-Serielle": GOTO 1429
1379 = "Disk-Controller": GOTO 142®
1389 "Communications": GOTO 142®
1399 "Serielle'": GOTO 142®
1490 = "Parallele": GOTO 142®
1419 "Firmware"
1428 PRINT S$;" Karte";
1430 PRINT : PRINT "Apple //e Double-Hires-Grafik?
(J/N)";: GOSUB 2159
1440 IF A$ < > "J" GOTO 1479
1450 POKE 49153,®: POKE 49165,9:X = PEEK (49246): REM
Softswitches für Apple //e
146® PRINT : PRINT D$"PR#3";:D = 1
1470 PRINT : PRINT "Bild speichern? (J/N)";: GOSUB 2159
1480 IF A$ < > "J" GOTO 1529
1490 L$ = "L$2009"
1500 IF D = 1 THEN POKE CO,1: & :L$ = "L$4900"
1510 PRINT : PRINT D$"BSAVE BILD, A$2009,";L$
1528 PRINT : PRINT D$"BLOAD";PF$
1530 Pl = PEEK (43634): REM Adresse des zuletzt
1540 P2 = PEEK (43635): REM geladenen Parameterblockes
1550 PB = Pl + 256 «= P2
1569 P=1
1578 HOME : VTAB (22)
1588 PRINT "Grafik schon im Speicher? (J/N)";: GOSUB 2159
1598 IF A$ = "N" GOTO 1799
1600 IF A$ = "J" GOTO 18PP
1618 GOTO 1579
162 POKE - 16309,®: POKE - 1630#1,®: POKE - 16297,®: POKE
- 16394,®
1630 HOME : VTAB (22)
1648 FOR I = ST TO ST + 39: POKE I,®: NEXT : REM Parameter
löschen
1650 GOSUB 2199: REM Grundeinstellung
1660 PRINT "Grundeinstellung? (J/N)";: GOSUB 215®
1678 IF A$ = "J" GOTO 2020
1680 TEXT
1699 GOSUB 2499: GOSUB 2480: GOSUB 2559: GOSUB 2629: GOSUB
2690: GOSUB 2769: GOSUB 2839: GOSUB 2909: GOSUB 3389:
GOTO 2929
1700 HOME : VTAB (22)
1718 PRINT "Diskette mit Grafikfiles einschieben": PRINT
"und Taste drücken";
1720 GET A$
1730 TEXT : PRINT : PRINT D$'"CATALOG": PRINT
1748 INPUT "Welche Grafik laden? ";A$
1750 IF A$ = "" THEN A$ = "BILD"
1760 HGR
1778 HOME : VTAB (22)
SUPERDUMP.IMAGEWRITER 1780 PRINT D$"BLOAD":A$
1798 IF D = 1 THEN POKE CO,2: & : REM verschiebe von Seite 2
1000 PF$ = "IMAGEWRITER": REM Parameter-File nach Aux RAM
101® DG = 4: REM Grundeinstellung für Double-Hires 1800 POKE - 16300,®: POKE - 16301,®: POKE - 16297,9: POKE
1020 NG = 1: REM Grundeinstellung für Nadel - 16304,
1030 ST = 768: REM Start der ParameterÜbergabe 1810 P=1
1040 KB = ST + ß®: REM Nummer des Kontrollblockes 1820 HOME : VTAB (22)
1050 KA = ST + 92: REM Adresse des Kontrollblockes 1830 PRINT "Ist dies das richtige Bild? (J/N)";: GOSUB 215
1ö60 IM = ST + ®4: REM 1-, 2- oder 4-fach Druck 1840 IF A$ = "J" GOTO 162®
1078 xXO ST : REM exclusives Oder für jedes Byte 1850 IF A$ = "N" GOTO 1879
1080 DI ST : REM Richtung 1860 GOTO 1829
1090 FR ST : REM Rand 1878 HOME : VTAB (22)
1108 AD = ST : REM Grafikadresse ($2000 für Seite 1) 1880 PRINT "Wollen Sie die andere Grafikseite": PRINT
111® RF ST : REM Wiederholung fÜr gleiche Bilder "sehen? (J/N)";: GOSUB 2159
1129 ST : REM Distanz zwischen gleichen Bildern 1890 IF A$ = "J" GOTO 1929
1139 ST linker Bildrand (9..559) 1900 IF A$ = "N" GOTO 2000
1149 ST rechter Bildrand (®..559) 191® GOTO 187®
1159 ST oberer Bildrand (®..191) 1920 POKE - 16299,®
116® ST unterer Bildrand (ß..191) 1930 POKE - 16392,
1179 ST Dehnung in X-Richtung (1..31) 1949 P=2
1189 ST Dehnung in Y-Richtung (1..31) 1950 GET A$
119 ST Double-Hires-Grafik für Apple //e 1960 PRINT
1299 ST automatisches LF nach CR 1978 POKE - 16309,
1219 ST Anzahl verschiedener Bilder 1980 POKE - 16301,®
1220 ST Richtung der Drucknadeln 1990 GOTO 182®
1239 sT Kommando fÜr Assemblerroutine 2000 POKE - 16393 ,®
1249 ST Interface-Typ 2010 GOTO 1799
1245 = CHR$(4) 2020 POKE - 16302,®
+++ +++ ++ +++ tt tr tr Hr Hr Hr HH
26 Peeker 6/85
| nn nm nn
YIYIN MAGAZIN FÜR APPLE-COMPUTER
Ja, ich möchte peeker abonnieren.
Liefern Sie mir peeker ab Ausgabe .................. (1985 erscheinen 11 Ausgaben —
1 Doppelnummer) zum Jahresbezugspreis von DM 72,- (Inland) incl. MwSt. Die
Lieferung erfolgt frei Haus. Porto, Verpackung und Zustellgebühren übernimmt
der Verlag. Der Jahresbezugspreis für das Ausland beträgt DM 72,- incl. MwSt.,
zzgl. DM 16,80 Versandspesen.
Für = Unterlagen
2 Abonnement bestellt
Ich wünsche jährliche Berechnung durch:
[_] Verlagsrechnung [_] Abbuchung von meinem Bank-
bzw. Postscheckkonto
Tas er: ervice Bank / PschA
Postfach 102869
6900 H ide nn
Bankleitzahl Kto.-Nr.
Datum Unterschrift
ZINN MAGAZIN FÜR APPLE-COMPUTER
Bitte senden Sie mir gegen Rechnung folgende Bücher:
Für Ihre Unterlagen:
- Folgenc ide Bücher beste
Datum Unterschrift
aaaaad MAGAZIN FÜR APPLE-COMPUTER
| ) Bitte senden Sie mir
. ge gegen Rechnung folgende Apple-Programme:
z oO U] Peeker-Sammeldiskette, einzeln [I Apple DOS 3.3, Begleitdiskette, DM 28,-
. Disk# ____—_, Disk# OD) Apple ProDOS, Band 1, Begleitdiskette,
. SL Disk# ____, Disk# DM 28,—
. # Preis je Disk DM 28,- (einzeln) DO) Apple ProDOS, Band 2, Begleitdiskette,
2 “ U] Peeker Sammeldiskette, OD) Apple Assembler, Begleitdiskette, DM 28,—
oO im Fortsetzungsbezug OD) ProDOS-Editor 1.0, Programm, DM 98,—
_ ab Disk # _—_—— OD) MMU 2.0, Programm, DM 98,—
_ 2 (Mindestbezug 6 Disketten) D INPUT 2.0, Programm, DM 98,-
° a 2 Preis je Disk DM 20,- OD) Softbreaker 1.0, Programm, DM 48,-
a M _ [I DB-Meister, Programm, DM 290,—
er | ..— OÖ D a ee a =
| Softwareabtelung 9 = SUDETIER ISHPANIN; —
_ Postfach 102869
. D D Unt hrift
M a t |. 1 . a atum nterschri
.
E Software-Karte
Vertrauensgarantie:
Ich habe davon Kenntnis genommen, daß ich die Bestellung
| schriftlich durch Mitteilung an den Dr. Alfred Hüthig Verlag,
PP Postfach 102869, 6900 Heidelberg 1 innerhalb von
7 Tagen widerrufen kann. Zur Fristwahrung genügt die
_ rechtzeitige Absendung des Widerrufs (Datum des
Poststempels).
| Datum
_ Unterschrift
Verlagshinweis:
Das Abonnement verlängert sich zu den jeweils gültigen
Bedingungen um ein Jahr, wenn es nicht 2 Monate vor
Jahresende schriftlich N. wird.
© Sache bitte vollständig ausfüllen
A m Vorname, Name
Firma
Straße
| Telefon mit Vorwahl
Karte bitte vollständig ausfüllen
Vorname, Name
Straße
Teleton mit Vorwahl
POSTKARTE
peeker
Leserservice
Postfach 102869
6900 Heidelberg 1
POSTKARTE
peeker
Versandbuchhandlung
Postfach 10 28 69
6900 Heidelberg 1
POSTKARTE
peeker
Softwareabteilung
Postfach 10 2869
6900 Heidelberg 1
INPUT 2.0
Ein Bildschirm-
Maskengenerator
für DOS 3.3 und ProDOS
von U. Stiehl
1984, Diskette und Manual, DM 98,-
ISBN 3-7785-1021-5
„Input 2.0“ liegt wahlweise in der Bank 1
oder Bank 2 der Language Card und wird
durch einen kurzen Driver in den unteren
48K aufgerufen.
Für jedes Feld der Bildschirmmaske lassen
sich u. a. definieren: Feldlänge (bis zu 255
Zeichen) — Vtab — Htab — Datentyp (insge-
samt 8 Typen) - Scrollflag (starre oder dyna-
mische Maske) — Ctriflag — Füllflag — Lösch-
flag — Bildschirmflag (40- oder 80-Z-Darstel-
lung). Innerhalb eines Eingabefeldes besteht
jeder denkbare Redigierkomfort (Insert, De-
lete, Rubout, Restore usw.).
Gerätevoraussetzung: Apple Ile oder Iic; fer-
ner Apple II+ im 40-Zeichenmodus
MMU 2.0
Memory Managements
Utilities
für die Apple lle 64K-Karte
DOS 3.3 (und ProDOS)
von. Stiehl
1984, Diskette und Manual, DM 98,—
ISBN 3-7787-1023-1
Insgesamt enthält die neue „MMU 2.0"-
Diskette über 25 Programme, die neue
Einsatzmöglichkeiten für die Extended 80
Column Card (erweiterte 80-Z-Karte =
64K-Karte für den Apple Ile) erschließen.
Ein Teil der Programme laufen auch auf
dem Apple II Plus, doch ist „MMU 2.0°
primär für 64K-Karte-Besitzer gedacht.
Gerätevoraussetzung: Apple Ile mit 64K-
Karte oder lic
Softbreaker 1.0
Eine softwaremäßige Interrupt-Utility
für die Apple lle 64K-Karte
vonU. Stiehl
1984, Diskette und Manual, DM 48-
ISBN 3-7785-1022-3
Softbreaker ist ein Assemblerprogramm, mit
dessen Hilfe Programme, die sich von der
64K-Karte (= Extended 80 Column Card für
den Apple lle) starten lassen, unterbrochen,
gespeichert, geladen und exakt an der Stelle
der Unterbrechung fortgeführt werden kön-
nen. Dadurch ist es auch möglich, Siche-
rungskopien von sogenannten kopierge-
schützten Programmen herzustellen.
Mit Softbreaker unterbrochene Programme
werden komplett, d. h. die ganzen 64K ein-
schließlich Language Card, in nur ca. 11 Se-
kunden auf einer formatierten Diskette gesi-
chert.
Gerätevoraussetzung: Apple Ile mit 64K-
Karte
Hüthig Software Service,
Postfach 10 28 69, D-6900 Heidelberg
Verkauf Software
TEAC 55F 600,- 55B 550, *
SSDD 10 St 42,- 96 tpi DS 78,-
Lochverst. europ. Markenw. * Box
Rglas. Schl. für 40-42,- für 80-—
49,— * Monitore 18Mhz 12” entsp.
gr. ab 298,-. VICO,
Selchower Str. 31, 1000 Bin 44
APPLE-Nachbau mit 16K, Z80,
VIA-Karte, 2 Disk-Laufwerke, Mo-
nitor und Intellig. Keyboard zu
verk., Tel. 040/7013101 nach
18 Uhr.
Flache Siemens/Rafi Tas-
tatur mit 64 Zusatz-Funktionsta-
sten und HEX Block. F-Tasten ver-
kettbar bis 1800 Zeichen. Stan-
dartbelegung Basic + Wordstar.
VHS 920. Eproms 2716 ä 8,50.
Tel. 06251/69742.
PrinterPlotter Adcomp X132SP
mit V24 Schnittstelle. Neupreis
5500 VHS 2400 DM. Eproms 2716
a 8,50 DM, Tel. 06251/69742.
*** Apple Il Supermodem xxx
V21, V23 und Bell, 300-1200
Baud komplett auf einer Karte, mit
Software startfertig nur 398 DM.
Rolf Kiupel, Tel. 04 31/5554 27.
Verk. neuen EPROM-Burner NP
373,- (Fa. Springmann) für nur
320,—- VHB; Frank Fuhrmann, Tel.
07231/21273
Verkaufe 100 % Apple Komp.
evtl. mit Zubehör, Preis VB
Tel.: 06109/64899.
Fernschreiberinterface am
Gameport m. Programm DM 79,—
P. Benner, Hubertusstr. 131, 4150
Krefeld
Z80B-Karte 6MHZ DM 600,-, 8
Zoll Controler DM 500,-, 8 Laufw.
DS/DD Sliml. 1,2MB DM 700,-,
Tel. 02221/605088 ab 18.00 Uhr.
Verkauf Hardware
EEE N 5
Landw. Spitzenprogramme
Ab 90 DM Infomappe (3 DM)
Fuer APPLE Il
A. Wachendorf,
2814 Engeln 30
RER
160-Track-Kopierprogramm
für normale 16-Sekt.-Disks mit
komf. Fehlerbehandlung Maschi-
nenspra. B. Rüter, Rahden. Str.
65, 4955 Hille
— -— - STOCKMASTER II — — —
Das Apple-Programm für echte
Börsengewinne.
TONGI, COMPUTER-PRAXIS
Aspeltstr. 4, D-6500 Mainz 1
Bagplus Basic Erweiterung
für den Apple. 19! neue Befehle:
Swap Instring, Inkey, Fillstr, Music
Fillpage, Invpage für 49 DM Info
anford.. Guido Schrörs Corne-
liusstr. 29, 4154 Tönisvorst 1
Astrologie-Progr. mit Text,
Progn. + Partnervergl. Probeaus-
dr. DM 10,- Geb. Dat. Zeit u. Ort
Ang. CH. Marquard, Postf. 145, D-
7753 Allensbach
== BUNDW
== Büroelektronik
Keithstr. 26 - 1 Berlin 30 : ® 0 30-26 11126
peel
örse
x APPLE Ile, APPLE lic x
Maschinenschreiben, Gratisinfo,
Demo-Diskette 10 DM, Dipl. Ing.
M. Decker, Johannastr. 64, 4220
Dinslaken, Tel.: 021 34/368 83
APPLE-Programme nach Wunsch:
Rüter, Rahdener Str. 65,
4955 Hille
Ankauf Software
Suche Mailbox-Programm für
APPLE Ile. Angebote an A. Krä-
mer, Talstr. 37, 6057 Dietzenbach
Suche Interessierte zur Gründung
eines APPLE-Computerclubs
im Raum 5010 Bergheim zur pro-
fessionellen Programmerstellung.
Tel.: 02271/43562.
Erscheinungstermin für
Ausgabe 7/85
ist am 24.6.1985
Ausbildung
Mikroprozessoren
Computertechnik
Praxisnahe Fachausbildung durch staatl.
dei Fernlehrgang. Hard/Software,
aschinensprache, Programmierungstech-
nik. Computer-Lernsystem wird mitgelie-
fert. Information kostenlos.
ISF-Lehrinstitut, 2800 Bremen 34/ Abt. 8-184
KKKKKKKKKRKKKKRRR
ER FIIPYNP
MC 3470 (der Leseverstärker auf
dem Analogboard): DM 10,-, A.
Deckers, PF 967, 7 Stuttgart 1
Disketten-Box 49,00 DM für 80
5 1/4” Disketten, M. Ziemer, Bel-
mer Str. 14, 4500 Osnabrück,
0541/74333 0. 37859
Suche „Schriftliches“ zu
ROBO1IB8BB + APPLEWORKS,
Tel. 02111/335842
Suche Gebrauchsanleitung für
Visiplot und Visitrend
Tel.: 02233/75102
KKKKFRKKRKRRKRRRRRRR
Floppysubsystem
für Apple Il
2 x 3,5" TEAC FD-35F
max. 2 x 1MB
Autopatch-Controller
inkl. Manual und SW
ALU-Profil-Gehäuse m. Netzt.
komplett anschlußfertig
nur DM 2398,—
RER
Telekommunikation
Anschlußkabel
Dataphon S21d
Terminalsoftware
komplett anschlußfertig
nur DM 398,—
KRRRFKRFRKRRRKRRR
TISCH & ZETTL GdbR
Elektronicvertrieb
Rosensir. 33, 8034 Germering
Telefon 089/841 68 17
KRRRKKRRKRKRKRRRKR
KKKRKKHKKKKKKRR
KRFKKFKKKRRR
KRRKRRKFRKRRRKRKRRRRR
-= BUNDW
== Büroelektronik GmbH
Bachstr. 104 - 2 HH 76 : ® 0 40-220 1155
Für weitere Informationen zu einem der in dieser Ausgabe vorgestellten
Produkte stehen Ihnen die Produktkarten zur Verfügung
Bitte verwenden Sie für Kleinanzeigen die vorgedruckten Antwortkarten in
diesem Heft.
Peeker 6/85
29
2030 IF P = 2 THEN POKE - 16299,®
2040 POKE -— 16297,®
2050 POKE - 16394,®
2060 POKE CO,®: REM jetzt drucken
2070 POKE HI,D: REM eventuell Doppel-Hires
2080 & : REM SUPERDUMP aufrufen
2090 TEXT
2100 HOME : VTAB (22)
2118 PRINT "Nochmal? (J/N)";: GOSUB 215
2120 IF A$ "J" GOTO 1579
2130 IF A$ = "N" THEN HOME : END
2140 GOTO 2199
2150 GET A$: PRINT A$;
2160 IF A$ > = "a" THEN A$ = CHR$ ( ASC (A$) - 32)
2170 RETURN
2180 REM
2190 POKE KA,Pl
2200 POKE KA + 1,P2
2210 POKE AD + 1,P & 32
2220 POKE RF,1
2230 POKE RI,6
2240 POKE RI + 1,39
2250 IF D = 1 THEN POKE RI + 1,79
2260 POKE BO,191
2270 POKE XF,l
2280 POKE YF,l
22908 POKE HI,D
2300 POKE DP,1
2310 POKE NE,NG
2320 IF D= 1 THEN C$ = STR$ (DG):
2330 RETURN
2349 REM
2350 PRINT "Welches Kommando: ";
2360 GET C$: IF (C$ = " ") OR (C$ = CHR$ (13)) THEN C$ =
"m
2378 IF VAL (C$) = ® THEN c$ = "1"
2380 RETURN
2390 REM
2400 HOME
GOSUB 3280: GOSUB 351
2418 PRINT "<1> 1-fach Druck": PRINT
2420 PRINT "<2> 2-fach Druck": PRINT
2438 PRINT "<3> 4-fach Druck": PRINT
2440 GOSUB 235%
2450 POKE IM, VAL (C$) - 1
2460 RETURN
2470 REM
2480 HOME
2498 PRINT "<1> Positiv": PRINT
2500 PRINT "<2> Negativ": PRINT
2519 GOSUB 2359
2520 IF C$ = "2" THEN POKE X0,255
25390 RETURN
2540 REM
2559 HOME
2560 PRINT "<1> Horizontal": PRINT
2578 PRINT "<2> Vertikal": PRINT
2580 GOSUB 235%
2598 POKE DI, VAL (C$) - 1
2600 RETURN
2610 REM
2628 HOME
2638 PRINT '"<1l> Kein Rahmen": PRINT
264® PRINT "<2> Rahmen": PRINT
2650 GOSUB 235%
2660 POKE FR, VAL (C$) - 1
2670 RETURN
2680 REM
2699 HOME
27008 PRINT "<1l> Seite 1": PRINT
2718 PRINT "<2> Seite 2": PRINT
2728 GOSUB 2359
2730 POKE AD + 1, VAL (C$) * 32
2749 RETURN
2750 REM
276® HOME
2778 PRINT "<1> Automatisches LF nach CR": PRINT
2780 PRINT "<2> Kein automatisches LF nach CR": PRINT
2798 GOSUB 235%
2800 POKE AL, VAL (C$) - 1
281® RETURN
2820 REM
28390 HOME
2840 PRINT "<1l> Unterste Drucknadel Bit 9": PRINT
2850 PRINT "<2> Unterste Drucknadel Bit 7": PRINT
2860 GOSUB 2359
2870 POKE NE, VAL (C$) - 1
2880 RETURN
REM
30
HOME
2918 INPUT "Wiederholungsfaktor : ";I
2920 I = ABS (I): IF I > 255 THEN I
2938 IF I=® THENI=1
2940 POKE RF,I
2959 INPUT "Wiederholungsdistanz: ";
2960 I = ABS (I): IF I > 255 THEN I
2970 POKE RD,I
2988 INPUT "Linker Rand : #37
2998 I = ABS (I): IF I > 559 THEN I
3000 POKE LE + 1, INT (I / 7)
3018 POKE LE,I - INT (I/7) «7
302 INPUT "Rechter Rand s mal
3030 I = ABS (I): IF I > 559 THEN I
3040 POKE RI + 1, INT (I / 7)
3050 POKE RI, I- INT(I/7) «7
3069 INPUT "Oberer Rand 0%
3078 I = ABS (I): IF I > 191 THEN I
3080 POKE TP,I
309 INPUT "Unterer Rand ; WST
3100 I = ABS (I): IF I > 191 THEN I = 191
311® POKE BO,I
3128 INPUT "X-Faktor ; USE
3130 I = ABS (I): IF I > 31 THEN I =1
3148 IF I=G THENI=|1
315® POKE XF,I
3160 INPUT "Y-Faktor a
3170 I = ABS (I): IF I > 31 THENI=1
3188 IF I=® THENI=|
3198 POKE YF,I
3200 INPUT "Anzahl der Bilder 2 m
3210 I = ABS (I): IFI>8 THEN I =]1
3220 IF I= 9 THENI=|1
3230 POKE DP,I
3248 INPUT "Kontrollblocknummer : ";I
3250 I = ABS (I): IF I > 255 THEN I = 1
3260 POKE KB,I
3270 REM
3280 IF PEEK (DI) = ® THEN BT = PEEK (XF) * ( PEEK (RI) +
PEEK (RI + 1) *& 7 - PEEK (LE) - PEEK (LE + 1) «7 +])
3298 IF PEEK (DI) = 1 THEN BT = PEEK (YF) * ( PEEK (BO) +
PEEK (BO + 1) *& 7 - PEEK (TP) - PEEK (TP +1) «7 +])
3300 BT = (BT + PEEK (RD)) * PEEK (RF) * PEEK (DP)
331® BH INT (BT / 256)
3328 BL = BT - INT (BT / 256) * 256
3330 BT$ = STR$ (BT)
3340 L = LEN (BT$)
IF L< 4 THEN FOR I = L TO 3:BT$ = "®" + BT$: NEXT
N
m
IH
>
Il
a
2719
Il
>
PRINT "Drucker: ";PF$: PRINT
3400 PRINT "<1> 576 Punkte/Zeile"
3410 PRINT "<2> 649 Punkte/Zeile"
3420 PRINT "<3> 768 Punkte/Zeile"
3430 PRINT "<4> 1152 Punkte/Zeile"
3440 PRINT '"<5> 1288 Punkte/Zeile"
3450 PRINT "<6> 856 Punkte/Zeile"
3460 PRINT "<7> 968 Punkte/Zeile"
3470 PRINT "<8> 1988 Punkte/Zeile"
2359
3500 REM *** hier Grafiksteuerzeichen POKEn xx**
351® I = PB + PEEK (KB) * 64 + 16: REM Adresse der
Grafiksteuerzeichen
3520 ON VAL (C$) GOTO
3539 ,3549 ,3559 , 3569, 3579, 3589, 3599 , 360®
3539 C$ = "n": GOTO 361
3549 C$ = "N": GOTO 3619
3559 C$ = "E": GOTO 3619
3560 C$ = "p'": GOTO 3619
3578 C$ = "P": GOTO 3619
3589 C$ = "e": GOTO 3619
35998 C$ = "q": GOTO 3619
3600 c$ = gm
361® POKE I + 2, ASC (C$)
3620 FOR J = 5 TO 8: POKE I + J, ASC ( MID$ (BT$,J - 4,1)):
NEXT : RETURN
SUPERDUMP.EPSON
Die folgenden Zeilen müssen im Listing SUPERDUMP. IMAGEWRITER
geändert werden.
1000 PF$ = "EPSON": REM Parameter-File
181® DG = 2: REM Grundeinstellung für Double-Hires
1028 NG = ®: REM Grundeinstellung für Nadel
Peeker 6/85
———
3400 PRINT '"<1> 489 Punkte/Zeile"
3410 PRINT "<2> 968 Punkte/Zeile"
3420 PRINT "<3> 96® Punkte/Zeile"
3430 PRINT '"<4> 1928 Punkte/Zeile"
3440 PRINT "<5> 649 Punkte/Zeile"
3450 PRINT "<6> 576 Punkte/Zeile"
3460 PRINT "<7> 728 Pinkte/Zeile"
3478 PRINT
3480 GOSUB 235%
3490 REM *** hier Grafis«steuerzeichen POKEn #*x*%*
3500 I = PB + PEEK (KB) * 64 + 16: REM Adresse der
Grafiksteuerzeichen
351® ON
3529
3539
3549
3559
VAL (C$) GOTO 3529,3539,3549,3559,3569,3579,3589
= "K": GOTO 3599
= "L": GOTO 3599
= "Y": GOTO 3599
= "Z": GOTO 3599
356 C = 4: GOTO 36ßP
3578 C =
3580 C
5: GOTO 369
= 6: GOTO 369
3598 POKE I,4: POKE I + 2, ASC (C$): POKE I + 3,BL: POKE
I + 4,BH: RETURN
S6ß® POKE I,5: POKE I + 2, ASC ("x"): POKE I + 3,C: POKE
I + 4,BL: POKE I + 5,BH: RETURN
Die Zeilen 361® und 3629 entfallen.
Tabelle 1: Übergabeparameter
$o300 -
50302
$0304
Peeker 6/85
Kontrollblock-Nummer: Nummer des aktuellen Kontroll-
blocks. Erklärung im Text.
(siehe Tabelle 2)
Adresse des Kontrollblockes: Startadresse des
Kontrollblocks #® im üblichen Low/high-Format.
Druckschwärze: (Wertebereich 1..3)
1 = l-fach Druck
2 2-fach Druck
3 = 4-fach Druck
XOR-Byte: (Wertebereich ®, 255)
$00 = schwarz auf weiß
$FF = weiß auf schwarz
Richtung: (Werteberich , 1)
ßÖ = horizontal
l = vertikal
Rahmen: (Wertebereich ß, 1)
® = kein Rahmen um das Bild zeichen
1 = Rahmen zeichnen (z.B. zum Ausschneiden)
Bildadresse: (Wertebereich ®..2116-1)
im Low/high-Format
$2008 für Seite 1
$4008 für Seite 2
oder eine beliebige andere Adresse im RAM-Bereich
Wiederholungsfaktor: (Wertebereich ®..255)
Anzahl der Wiederholungen des gleichen Bildes
nebeneinander
Wiederholungs-Abstand: (Wertebereich ®..255)
Anzahl der Bits, die zwischen zwei oder mehr
aufeinanderfolgenden Bilder frei bleiben soll.
linker Bildrand: (Wertebereich ®..559)
Folgendes Format muß eingehalten werden:
$0312 = Linker Rand mod 7
$0313 = Linker Rand div 7
Bsp: Linker Rand = 1® daraus folgt
$0312 = 3, $8313 = 1 (weil 19 = 1x 7+3)
rechter Bildrand: siehe linker Bildrand
oberer Bildrand: (Wertebereich ®..191)
unterer Bildrand: (Wertebereich ®@..191)
Xfaktor: (Wertebereich ®..3l)
Dehnung des Bildes in X-Richtung
Yfaktor: siehe Xfaktor
Hires 569: (Wertebereich ®, 1)
Ö = Drucken der normalen 28ß*192-Grafik
1 = Drucken der Apple-IIe- oder Apple-IlIc-
560+192-Grafik
Auto-LF: (Wertebereich ®, 1)
ßÖ = sende LF nach CR
1 = sende kein LF nach CR
Anzahl der verschiedenen Teilbilder:
(Wertebereich 1..8)
Bsp: 1. Teilbild (linke Hälfte) Seite 1,
2. Teilbild (rechte Hälfte) Seite 2,
dann setzt man:
$30C:00 28 (Adresse des 1. Teilbild)
$322:92 (2 Teilbilder)
Das heißt: Das 2. Teilbild wird bei $4ßß® beginnen,
denn es werden pro Teilbild $2ß@® zur Anfangs-
adresse aufaddiert.
arafık 44
$0324 - Drucknadel-Richtung: (Wertebereich ß, 1)
Für Epson Drucker = ß,
für
für
Imagewriter = 1,
alle anderen Drucker selbst ausprobieren
$0326 - Kommando-Byte
0 =
I =
2 =
Drucke Bild
Verschiebe von Auxiliary-RAM $2@0® nach
Main-RAM $4909
Verschiebe von Main-RAM $4ß@9 nach
Auxiliary-RAM $2900
Konvertiere ein Double-Hires-Bild in 2 normale
Hires-Bilder mit
linker Hälfte in Seite 1 ($2@9®) und
rechter Hälfte in Seite 2 ($499®)
Konvertiere 2 normale Hires-Bilder von
Seite l (linke Hälfte) und
Seite 2 (rechte Hälfte)
in ein Double-Hires-Bild.
nm nn nn nn mn nenn nn nn nn nu nme
PEEkER
4.) a) a) irRES-Grafik
nn
Die obige Grafik wurde von Martin Schmidt erstellt
und mit Superdump ausgedruckt.
Tabelle 2: Print-File
Epson
Block
Pinit:
Pline:
PIE:
Pexit:
Block
Pinit:
Pline:
PAFL:
Pexit:
#9:
#]:
IHH9-
9908-
9919-
9018-
9929-
9028-
9939-
9038-
9949-
9948-
8959-
9958-
9060-
9068-
9978-
9078-
Imagewriter
Block #ß:
Pini®:
Pline:
Pifl:
Pexit:
9p99-
9p98-
991B-
9p18-
9929-
9028-
9p39-
9938-
für Horizontaldruck
03 1B 33 17 BO BB 00 BD Länge 3: ESC,
do DO DD DO DO DO DD DB "3", CHR$(23)
04 1B AB 18 Q1 PB BB PB Länge 4: ESC,
DD BO DO DO DO DO DO MO "K", CHR$(24), CHR$(1)
03 1B AA Bl BO DD BO BB Länge 3: ESC,
0 DD DO DO DO DO DO DD "J", CHR$(1)
02 1B 32 BO BDO DO BO BO Länge 2: ESC,
20 BD BD BO DO DD DD Do "2"
für Vertikaldruck
03 1B 33 14 00 00 00 00 Länge 3: ESC.,
DD Do DD DO DO DO 00 MO "3", CHR$(29)
04 1B AB CO 00 00 00 OB Länge 4: ESC,
DD DD DO DD DO DO DO 00 "K", CHR$(19?). CHR$(O)
93 1B 4A Bl BD BO 00 MO Länge 5: ESC.
DD PD DD DO DO DD DD DO "3", CHRS(1)
2 1B 32 D0 00 00 00 MO Länge 2: ESC,
BD DD DD DO DB DD DD DB "2"
für Horizontaldruck
ß6 1B 54 31 36 1B 3E PB Länge 6: ESC,
00 DO DD DO DO DO DO DB "TE", ESC, ">"
08 1B 6E 1B 47 30 32 38 Länge 8: ESC,
30 DD MD DD DO DO DO DB "n!", ESC, "GP28g"
0 DD DO DO OO DO DD MB Länge P
DD DD OD DO DO DO DO De
04 1B 3C 1B 41 BP DO BP Länge 4: ESC,
DD DD DD DO DO DO DO DD "<", ESC, "A"
31
#1: für Vertikaldruck Grundeinstellung? "y"
l-fach Druck an
: 9040- 96 31 Länge 6: ESC, Positiv DM
9948- "") "714", ESC, ">" Horizontal "u
: 9959- 1B Länge 8: ESC, Kein Rahmen ny"
9058- 011) "n", ESC, "G9192" Seite 1 "n
9969- 9") Länge ® Automatisches LF nach CR "]" für Epson und Imagwriter
9068- ") Unterste Drucknadel Bit ® "]" für Epson
: 9070- 1B Länge 4, ESC, "2" für Imagewriter
9078- DD 90 "eu, ESC, "A" Wiederholungsfaktor u iu
Wiederholungsdistanz gu
Linker Rand u
Tabelle 3 Rechter Rand "279"
Oberer Rand gu
Unterer Rand "191"
Frage Antwort X-Faktor Be
Y-Faktor a
Anzahl der Bilder ua"
zu Bild 1: Kontrollblock Nummer "og"
Grafikmodi "2" für Epson
Apple IIe Double-Hires-Grafik? "N" "a4" für Imagewriter
Bild speichern? N"
Grafik schon im Speicher? my Anmerkung zu Bild 2: Dies sind zwei normale 289*192-Punkte-
Welche Grafik laden? <Name des Grafikfiles angeben> Bilder, die nebeneinander im Speicher liegen,
Ist dies das richtige Bild? ng aber zusammen gedruckt werden. Dies kann beim
Grundeinstellung? ng Drucken für Graf-quattro-Bilder benutzt werden.
zu Bild 3:
zu Bild 2: 4‘
Apple IIe Double-Hires-Grafik? '"J" =
Anfang wie Bild 1 sonst wie Bild 1
ccp datentechnik INTUS — Lernprogramme
in deutscher Sprache für Apple Ile und Ilc.
® Rechtschreib-Trainer. 4 Übungsarten, 16 Bereiche,
über 4000 Wörter und Kurzsätze. Sehr wirkungsvoll,
gute Erfolge bei Legasthenie DM 125,—
640 KByte-Drives für den Apple //c!! @ Wortschatztrainer Englisch und Französisch, e DM 98,-
@ 5'/4- od. 3'2-Zoll-Format (Teac FD55/35-F) @ Maschineschreiben wie der Blitz. 20 Lektionen. DM 188,—
@ FD55-F umschaltbar auf 35/40 Track
& Anschluß an die suleme Laufwerkbuchse @ Basic-Lernprogramm. 14 Lektionen. DM 295,—
® Kein Öffnen des Gerätes erforderlich ® Lesen wie der Blitz.Wirkungsvolles Lesetrainiing. DM 98,-
@ Einfache Anpassung für DOS 3.3, UCSD-Pascal und PRODOS © Kinderschule. Beliebte Vorschulprogramme. DM 69.-
durch menügeführten Patch iR ’
© Anpassung von CP/M in Verbindung mit einer Z 80-Zusatzplatine @ Demo-Disk. mit Kostproben aus 9 Programmen. DM 10,-
in Vorbereitung Katalog gratis.
® anschlußfertig im Gehäuse DM 990,—
Festplatten für Pe r (ve) INTUS SOFTWARE
@ 5'/4 Zoll-F t (Slimli
= a Fat pr EEE in DOS 3.3, UCSD-Pascal, Kaiserstraße 21 : 7890 Waldshut-Tiengen - Telefon 07751-7920
PRODOS und CP/M 2.2 / 3.0
@ Gemischtbetr. mit 35/40/80/160 Track-Drives
@ Copy- und Install-Programme im Lieferumfang
@ Umfangreiches Manual
® z.B. 12 MB form. incl. Netzteil u. Contr., u
Macintosh
I” 512K
@ 5'/- od. 3'/-Zoll-Format (Teac FD55/35-F)
Speichererweiterung
@ FD55-F umschaltbar auf 40 Track (Apple kompatigel)
@ Installationssoftware für DOS 3.3, UCSD-Pascal, CP/M 2.2,
CP/M 2.23 (60K), PRODOS, AP22, ALS CP/M+
® Umfangreiches Handbuch
® Anschlußfertige Auslieferung incl. Contr. und 2 Drives
@ Diskstation 55ll (2 Teac FD55-F, 1.22MB) . . . DM 1649,—
@ Diskstation 3511 (2 Teac FD35-F, 1.2MB) . . . DM 1540,—
Alles für Ihren Apple
Info bei:
ccp-datentechnik
Herderstraße 12 — 2000 Hamburg 76
Telefon 040/225676
Professionelle Umrüstung in 24 Std.
Zum Superpreis von nur DM 1680,--
Schappach Computer 68 Mannheim
Ss6,36 Telefon 062 1-120662
32 Peeker 6/85
Betriebssystem CP/M
Vom Monitorprogramm zum
Mehrbenutzersystem.
Von Jürgen Plate.
1984, 351 Seiten, 30 Abb.,
3 Tab., geb., DM 56,-
Franzis
Das Buch beschreibt ausführ-
lich die Kommandos, ihre
genaue Syntax und die einzel-
nen Teilprogramme von CP/M
wie BIOS (systemspezifischer
Teil), ED (Editor), ASM (Asem-
bler, inklusive einer Beschrei-
bung des 8080-Befehlssat-
zes), SYSGEN und STAT.
Der Beschreibung von CP/M
ist das Listing eines komfor-
tablen Monitorprogramms für
Z-80-Computer vorangestellt,
das eine elementare Program-
mierung auf Maschinenebene
erlaubt, solange man CP/M
noch nicht geladen hat. Das
kann z. B. zur Fehlersuche
sehr nützlich sein. Am Schluß
des Buches findet sich auch
eine Kurzbeschreibung der
Multitasking-/Multiuser-
Betriebssysteme.
Das Buch zum Apple Il
von Erich Esders
1985, 210 S., 119 Abb., geb,
DM 54, —
Wenn hier vom Apple Il
gesprochen wird, so gilt das
auch für den Ilplus, den lleuro-
plus und die lle-Versionen
sowie für den ganzen „Apple-
Nachbau“. Das Buch ist ein
Wegweiser durch diesen
Rechner, um mit ihm schneller
und effektiver zu arbeiten. Es
geht hier weniger um das ele-
mentare Programmieren des
Peeker 6/85
Rechners, sondern um
Assemblerprogramme, die
extensiv Monitor-ROM-
Subroutinen benutzen. Diese
hat der Autor nach Sach-
gebieten geordnet, z.B.
Mathematik, Graphik, String-
Bearbeitung + Disassembler-
Listings und diese wiederum
mit Erklärungen und Applika-
tionen komplettiert. Eine aus-
reichende Dokumentation ist
dabei immer gewährleistet. Sie
geht schrittweise vor, von der
Aufgabenstellung über die
Programmentwicklung bis zum
lauffähigen Maschinenpro-
gramm. Die angebotenen Bei-
spiele sind ausbaufähig und
lassen der eigenen Kreativität
reichlichen Spielraum. Viele
neuartige Tips und Tricks wird
auch der beschlagene Apple-
Benutzer begrüßen.
Aus dem Inhalt:
Der Mikroprozessor des
APPLE Il. Der APPLE Il und
seine Speicheraufteilung.
APPLESOFT und seine
Arbeitsspeicher-Bereiche. Der
MICROSOFT-Basic-Inter-
preter: Die Zeichen-Lese-
Routine. Interpretierer und
Lokalisierer. Handler-Routi-
nen. BASIC/Maschinen-
sprache-Interfaces.
DISAS-Generator. Unterpro-
gramme im APPLESOFT-
Basic-Interpreter: Softschalter
und -Flags. Ausdrucks-Inter-
pretierer. Low-Resolution-
Graphik. Fehler-Behandlung.
Applikationen: Arithmetik-
Demonstration „FP-CALC“.
Hex-Dumps der Applikationen.
BASIC-Monitor BASMON/D:
Vorstellung der neuen Kom-
mandos. Das Programm
„BASMON/D“. Implementie-
rung und Laufbeispiele.
BASIC-Interpreter-Vergleich
APPLE II - Commodore 64:
Arithmetik-Demonstration
„FP-CALC/64“. Listen: Die
Token des APPLESOFT-Basic.
Apple II ROM Listing
von Matthias Buck
1984, 116 S., Kart., DM 59,-
dernic Il
1,1, He,lic
Listing
für Applesoft -BASIC- |
Interpreter
von Matthias Buc Buck
ee ernennen an
MIKROCOMPUTER
Das deutsche Apple-II-ROM-
Listing ist da!
Einleitung zum prinzipiellen
Ablauf des Applesoftinter-
preters:
-@ Aufbau und Verarbeitung
der/des Programmtextes -
Variablentabelle - String-
space - Fließkommaformate
- Basicstacks (GDSUB,
FOR-NEXT, ...)
® Beschreibung der wichtig-
sten Unterprogramme, z. B.
Variablensuche, Garbage
collection, Ausdrucksaus-
wertung, CHRGET, ...
@ Vollständig disassemblierte
und sehr ausführlich
deutsch kommentierte Auf-
listung des Applesoft-
BASIC-Interpreters
® Übersichtliche Auflistung
aller vom Interpreter benutz-
ten RAM-Zeilen mit allen
Verwendungszwecken
® Über 150 ausführlich doku-
mentierte Unterprogramme:
- Funktion
- Ein/Ausgabeparameter
Auch für Apple-lle und c und
Kompatible!
Apple Il Pascal
Eine praktische Anleitung
von Arthur Luehrmann und
Herbert Peckham
1982, 544 S., kart., DM 59,-
APPLE |
PASCAL ,
ARTHUR LUEHRMANN - HERBERT PECKHAM
Dieses Buch ist unentbehrlich
für alle, die die Programmier-
sprache PASCAL lernen
wollen und Zugang zu einem
Apple Computer haben.
Sie benötigen keinerlei Vor-
kenntnisse, sondern lernen an
Hand von Beispielen und
Übungen, wie man selbst
PASCAL-Programme entwik-
kelt und sie austestet und
werden allmählich von Kapitel
zu Kapitel vertrauter im
Umgang mit dem Apple
Computer.
Start mit Apple-Logo
für II, Ile und Ilc
Das kleine Logo-Einmaleins:
Grafik « Text + Musik
VonD. Senftleben
1985, 222 Seiten, DM 35,-
Viele Mikrocomputer-Her-
steller bieten für ihre Geräte
neben BASIC und anderen
Programmiersprachen
zunehmend auch Logo an.
Durch ihre Benutzerfreund-
lichkeit hat diese Sprache
bereits viele Freunde im
Ausbildungs- und Freizeitbe-
Dietrich Senitleben
Start mit,
Apple-Logs für
Apple Il, Ile und Ilc
WISSEN
ss
reich gefunden. Dabei ist
Logo eine mächtige
Sprache, die auch dem
anspruchsvollen Anwender
kaum Wünsche offenläßt.
Mittels Schildkrötengrafik
wird das kleine Logo-Einmal-
eins in 12 Lektionen entwik-
kelt. Große Bildschirmfotos
begleiten den Leser durch
die Lektionen. Das Buch ver-
langt aktive Mitarbeit. Es hat
seinen Platz neben dem
Computer und gibt Hilfen
und Anregungen für eigenes
Forschen. Dank des bau-
steinorientierten Konzepts
kann jeder seine eigenen
Teilbausteine erzeugen und
sie zu neuen Blöcken
zusammenfügen. Neben
dem Einmaleins werden
neue Einsatzbereiche für
den Einsteiger erschlossen.
Musik und Sound fehlen
nicht.
In diesem Buch werden die
beiden offiziellen Logo-Pro-
dukte der Firma Apple für die
Rechnerfamilie Apple Il, Ile
und IIc behandelt und deren
Unterschiede verdeutlicht.
Weiterhin sind sämtliche
Apple-Logo-Vokabeln über-
sichtlich zusammengestellt.
Dieses Buch ist ideal zum
problemlosen und vergnüg-
lichen Start in die Apple-
Logo-Welt.
Apple Il
Anwenderhandbuch
von Lon Poole
1982, 450 S., zahlr. Abb.,
kart., DM 56,-
Auch für diesen Computer
haben wir den richtigen Leit-
faden. Er erspart Ihnen zeit-
raubendes und nutzloses
Suchen nach der wirklich
verwendbaren Dokumenta-
tion für Ihren Computer. Das
Anwenderhandbuch
beschreibt zum einen den
beliebten Apple II-Computer
als solchen und gibt zum
anderen ausführlich Aus-
kunft über die normalen
Peripheriebausteine und
Zubehör einschließlich Disk-
Laufwerken und Drucker. Mit
Hilfe dieses Buches werden
Sie Ihren Apple Il erfolgreich
einsetzen, denn der Informa-
tionsgehalt geht weit über
das hinaus, was hersteller-
seitig an Literatur angeboten
wird. Sie lernen BASIC auf
zwei verschiedene Arten zu
verwenden. Wie man den
Gebrauch von Klang, Farbe
und Grafik zum Optimum
führt. Sie erhalten Tips für
fortgeschrittene Programm-
erstellung. Sie erfahren die
Verwendung des Maschi-
nensprachen-Monitors
u.v.m. Mit dem Apple Il-
Anwenderhandbuch werden
Ihnen alle Möglichkeiten
eröffnet, die in diesem Com-
puter stecken.
Apple ll Pascal
Sprache
1985, 197 S., DM 39,-
Apple Il Pascal
Betriebssystem
1985, 256 S., DM 49,-
33
Ralf Menssen
Hardcopy auf
Olympia ESW 100 RO
Ein Typenraddrucker wird grafikfähig
Das Programm OLYMPIA gibt eine Hard-
copy vom hochauflösenden Grafikbild-
schirm 1 oder 2 auf dem Typenraddrucker
Olympia ESW 100 RO aus. Es ist durch
leichte Modifikationen im Prinzip für alle
Typenraddrucker verwendbar, die ihre ho-
rizontale und vertikale Schrittweite auf
1/60 bzw. 1/96 Zoll einstellen können. Es
lauft auf dem Apple Il mit 48K und allen
kompatiblen Rechnern. Die hier vorge-
stellte Version beginnt bei Speicherplatz
$8000 und sollte durch BSAVE OLYMPIA,
A$8000, L$IES auf Diskette gespeichert
werden; es kann jedoch auch an anderer
Stelle neu assembliert werden.
Bedienung des Programms
Die auszudruckende Grafik muß sich im
Speicher befinden. Dann lädt man die
Druckroutine mit BLOAD OLYMPIA und
startet sie mit CALL 32768. Auf dem Bild-
schirm erscheint jetzt die Grafikseite 1 und
darunter die Frage, welche Seite ausge-
druckt werden soll. Antworten Sie mit „1“
oder „2“.
Als nächstes müssen Sie entscheiden, ob
das Bild positiv oder negativ erscheinen
soll, d.h. ob ein weißer Punkt auf dem
Bildschirm auf dem Papier schwarz oder
weiß werden soll. Geben Sie „P“ oder
„N“ ein.
Als letztes müssen Sie noch die vertikale
und die horizontale Schrittweite in 1/60
bzw. 1/96 Zoll angeben. Als günstige Ein-
gabe hat sich „O2“ für die horizontale und
„03“ für die vertikale Schrittweite heraus-
gestellt. Sie erhalten dann eine Hardcopy,
die ein quer eingespanntes DIN-A4-Blatt
gut ausfüllt. Außerdem. decken sich die
Punkte dann sehr gut.
Haben Sie diese Eingaben gemacht, brau-
chen sie etwas Geduld, denn der Typen-
raddrucker muß jetzt ca. 50000 Positionen
ansteuern und wahlweise einen Punkt
oder ein Leerzeichen drucken. Aber das
Warten lohnt sich, denn die Qualität der
34
Hardcopy übertrifft Matrixdrucker der glei-
chen Preisklasse Klar.
Zur Schonung des Typenrades stellen Sie
bitte den geringsten Anschlag am Drucker
ein. Außerdem sollte man ein Endlosfarb-
band verwenden, da ein Karbonband zu
schnell verbraucht ist.
Programmaufbau
Es werden die zwei Unterprogramme
COUT (Ausgabe eines Zeichens bei
$FDED) und RDKEY (Lesen eines Zei-
chens bei $FDOC) des Apple-Betriebssy-
stems benutzt.
Die druckerspezifische Befehle lauten wie
folgt:
ESC P — Auto-Linefeed ein-/ausschalten
($1B $50),
ESC $FF nn — vertikale Schrittweite defi-
nieren ($1B $0C nn),
ESC CR nn — horizontale Schrittweite de-
finieren ($1B $0D nn),
SP - Leerschritt ($20),
CR — Wagenrücklauf ($0D),
„. — Punkt ($2E).
Das Programm ist für eine Druckerschnitt-
stelle in Slot 1 ausgelegt. Festgelegt ist
dies durch die Labels PORTDATA und
HANDSHK. Für Slot 2 müßte PORTDATA
zu $COAO und HANDSHK zu $C2C1 ge-
ändert werden. Für manche Interfaces ist
ein anderes Übergabeprotokoll erforder-
lich, das Sie dem zugehörigen Handbuch
entnehmen können.
Für künstlerische Effekte bietet sich die
Zeile 179 an. Dort wird festgelegt, daß der
Drucker einen Punkt (= $2E) druckt. Als
Alternative wären z.B. der Schrägstrich
oder das Ausrufezeichen denkbar. Ändert
man dann noch die Schrittweiten, ließe
sich die Grafik „zoomen“. Weitere Mög-
lichkeiten sind Ihrer Phantasie überlassen.
Peeker 6/85
OLYMPIA
s00B: A9 BP
8002: 8D 59
8005: 8D 53
8008: 8D 54
8ß0B: 8D 57
SODE: A2 99
801®: BD 8E
8013: 20 ED
8016: E8
8017: E® 2E
8019: D® F5
801B: 29 dc
SPlE: C9Y Bl
8029: FO 09
8022: C9 B2
8024: D® F5
8026: AB 4
8028: AC 2D
802B: AB 29
802D: A2 99
802F: 86 1A
8031: 84 1B
8033: A2 2E
8035: BD 8E
8038: 20 ED
803B: E8
803C: E® AA
8Sß3E: D® F5
8049: AY BO
8042: 85 06
8044: 20 BC
8047: C9Y DB
8049: FO 08
804B: C9 CE
804D: DO F5
8DAF: AY Pl
8051: 85 6
8053: 20 45
8056: A9Y DE
8058: 20 53
805B: 85 EF
805D: 20 45
8060: A9Y DI
8062: 20 53
8065: 85 EE
8067: A9 BB
8069: 8D 52
806C: AY PD
8D6BE: 20 3C
8071: AS 1B
Peeker 6/85
co
cp
co
cp
8l
FD
FD
80
8l
FD
FD
8l
8l
8l
8l
cp
8l
vo oıoouAuvDdH-
ba u
SOotvenı9 1 A wu DH a
DVD
Dr
OO OO OIIAAIAIAAAAADODO DOWN UNUUNN N UND DD DD
END HSOO IV PWND Hr SO ID PUWUDV HH SO IODVOTMTPPUD HH SO AIODO I PUDH-SOOIODOTVTPNDHSODOTIDU SB
ek
** HARDCOPY APPLE - ESW190-RO “*
*%* Von Ralf Menssen Berlin 1984 ..r
RR
.
ORG $8999
COUT EQU $FDED
RDKEY EQU $FDOC
INVERT EQU $96
WORKREG EQU 997
BASADR EQU $1A
‚Arbeitsregister
OUTCOUNT EQU $I1C ‚Zählregister
MEDCOUNT EQU $1D ‚Zählregister
KEYCHR EQU $ED ‚Tastenspeicher
STEPY EQU $EE
STEPX EQU $EF
ZWADR EQU $F9
ENDADR EQU $FB
INCOUNT EQU $FE
ZWERG EQU $FF
PORTDATA EQU $cP9P
HANDSHK EQU $cIc1
‚Schrittweite Y
‚Schrittweite X
‚Zählregister
‚Zwischenergebnis
‚Datenport Slot 1
%*
KRRKKKRKKEKTERKTET HH HH FH HEHE IK FE KR
LDA #$99
STA $C95® ;HGR1
STA $0053 : #*
STA $C954 >STELT
STA $c957 ‚einschalten
KRFRHKFKHKFRFKRTKTRFKRFHF KK FT KH FH TE HF HF FE HH HF FF I KH
** PARAMETER EINGEBEN *%*
KRKRFKKKKFERRFERKHFT KK TFT KH FF KH HK FH FE I KH HH FF FF
LDX #$0®
ZUULIE LDA DATEN,X ;"BILDSCHIRM 1 ODER 2"
JSR COUT
INX ‚ausgeben
CPX _ #$2E
BNE ZUULIE
RR
FALSCH JSR RDKEY
CMP #$Bl
BEQ SCREENIl ‚"]" oder "2" von
CMP #$B2 ;Tastatur holen
BNE FALSCH
LDY +$49 ;HGR-Seite 2
JMP WET
SCREENl LDY #$29 ;‚HGR-Seite 1
WET LDX #$9®
STX BASADR
STY BASADR+1
rer
LDX #$2E
BIGGI LDA DATEN,X ;"POSITIV ODER NEGATIV"
JSR COUT ‚auf Bildschirm
INX ‚ausgeben
CPX #$4A
BNE BIGGI
RR
LDA #$09
STA INVERT
SLX JSR RDKEY
CMP #$D® ‚Eingabe = P?
BEQ POSITIV
CMP #$CE ‚Eingabe = N?
BNE SLX
LDA #$01 ;‚invertiert
STA INVERT ‚drucken
Er 2 22 2 2 2 a nn ne ZZ
POSITIV JSR DATAUS
LDA +#$D8
JSR HOLEN ‚Schrittweite X
STA STEPX ;holen
JSR DATAUS
LDA #$D9 ;Schrittweite Y
JSR HOLEN ;holen
STA STEPY
RR
#*%* INITIALISIERUNG “x
a a a a a ne ee
LDA +#$0®
STA $c952 ; TEXT ausschalten
LDA #$9D
JSR PRINT ‚CR ausgeben
LDA BASADR+1
‚Zeichen an Bildschirm
;Zeichen von Tastatur
‚Bild invertiert ausgeben
;Bildschirm-Basisadresse
‚Adressen-Übergaberegister
‚endgültige Basisadresse
‚Handshakeport (Bit7 = READY)
rrelectronic
Elektronik - Fachliteratur - Personal-Computer
BASF qualimetric®
Disketten 1.Wahl
BASF-Disketten softsektoriert in Pappkarton
3,25"-Disketten alle ohne Aufpreis mit Verstärkungsring.
Type Beschreibung 10 Stk 100 Stk
IXV u... 48 TPI, I-seitig, einfache Dichte ....... 46,90 459,00
IDV ...... 48 TPI, 1-seitig, doppelte Dichte ...... 49,50 484,50
2/96V.. 96 TPI, 2-seitig, doppelte Dichte ...... 82,50 799,50
3M Sicherheits-Disketten
5,25"-Disketten mit Verstärkungsring; softsektoriert.
744-0 .48TPI, I-seitig, doppelte Dichte ...... 49,50 485,00
745-0 .. 48 TPI, 2-seitig, doppelte Dichte ...... 72,50 679,00
747-0 .. 96 TPI, 2-seitig, doppelte Dichte ...... 89,50 855,00
Disketten - Doubler 14.50
Mit diesem Diskettenlocher können Sie auch die Rückseite
Ihrer SS- o. D5S-Diskette zum Abspeichern von Daten nutzen.
5,25" - Plastikbox 35
Formschöne Klappbox aus Hart-PVC für ca. 10 Disketten in
den Farben grün, orange, schwarz, hellgrau, elfenbein oder
anthrazit. Bitte die gewünschte Farbe angeben. Mischbar.
Staffelpreise: I St. 5.95 10 St. 49.50 100 St. 459.-
5,25" - Disketten-Kästen
Diskettenbox ohne Schloß 24.95
Repräsentative Disketten-Box aus deutscher Fertigung in den
Abmessungen (T x Bx H) 306x 174x144 mm ohne Schloß mit
topas farbenem Decke] für ca. 80 Disketten und 4 be-
schriftbaren Stützplatten. Sehr preiswert!
Diskettenbox 29.50
aufklappbar
für ca. 50 Disketten
aus stoßfestem, antistatischem
transparentem Äcryl mit 4 beweg-
lichen, beschriftbaren Stützplatten.
DiskettenboXx abschliesvar 39.50
für ca. 85-100 Disketten
aus antistatischem ABS-Kunststoff,
Deckel aus hochwertigem Acryl({rauch-
glasfarben). Der Trog kannplatzsparend
in den Deckel gestellt werden. 9 beweg-
lichen Unterteiler mit beschriftbaren
Stützplatten sorgen für Übersicht
Akustikkoppler s21Id 289.-
300 Baud Modem CCITT Y.21 Standard
e— o—
le L
1 [ I [ [ |] Te
* Mit FTZ-Nummer * Gebühren- u. anmeldefrei
* Anschluß an alle Computer mit Y24-Schnitt
stelle * Vollduplexbetrieb * Answer- und
Originate-Modus * MADE IN GERMANY *
TELETERM 2+/e 198.-
Telekommunikationssoftware für den Apple.
* ohne serielles Interface * Datenübertragung
über den Gameport * Anschlußfertig an s21d.
Und das bietet Teleterm 2+/e:
Kommunikation über den Bildschirm. Abspeichern empfang-
ener Daten auf Diskette. Daten von Disk laden und senden.
Drucken emfangener Daten. Einstellen der Kommunikations-
parameter. Die Software für Kommunikations-Profis.
Unser großer Hit auch für Ihren Apple //e:
ERRELELE 80 Zeichen/64kB-RAM
G&5 EEE Für APPLE /ve
—# dtsch. Qualitätsprodukt
u
al. jetzt nur noch... > Fa
Ventilator für Apple 2+/e 99.-
Viele Zusatzkarten entwickeln zusätzliche wärme und
blockieren sogar noch den natürlichen Luftstrom. Der
leistungsfähige, geräuscharme Ventilator, sorgt für die
notwendige Belüftung.
Universelle Uhrenkarte
a A are)
1: I, y -
3 r- 1
u Wi
. Kl de für Apple //e und //*+.
Läuft unter DOS, ProDOS und PASCAL.
Z-80 Karte (ohne Sofware) 149.-
ITOH/EPSON-Grafikkarte mekaveı 230 .-
Serielle Karte f. Imagewriter 239.-
RS-232-C-Karte (Seriell) 175.-
Disk-Controller (0.Software) 175.-
Die Aufrüstung Ihres 128k MAC auf
512k kostet bei uns nur: 1590.-
MASTERCLOCK 325.-
incl. Demodiskette
Apple//e, //c + Macintosh
Vorführ- und Messegeräte
preisgünstig abzugeben.
Ladenverkauf, Vorführung und fachgerechte Beratung
r:r electronic
Elektronik - Fachliteratur - Personal-Computer
6900 Heidelberg I Breslauerstr. 29 Tel.06221/781500
Geschäftszeiten: Mo. - Fr. 9-13 +14 - 18 Sa. 9 -13 Uhr
Versandanschrift: 6900 Heidelberg ! Dammwegqg 2
35
CMP
BNE
LDA
STA
LDA
JSR
LDA
JSR
LDA
JSR
LDA
JSR
LDA
JSR
LDA
JSR
LDA
JSR
LDA
JSR
+$49 ;HGR2 angewählt?
NEST
+$99 - ;umschalten
$c955 ‚auf HGR2
#+$1B ‚ESC ausgeben
PRINT
#+#$0C ‚vertikale
PRINT ;‚Schrittweite
STEPY ‚ausgeben
PRINT
#+$1B ‚ESC
PRINT
#+$0D ;horizontale
PRINT ;‚Schrittweite
STEPX ‚ausgeben
PRINT
#+$1B ;‚ESC
PRINT
+$59 ;AUTO-LINEFEED
PRINT ‚einschalten
POUR EEETTERLTELELTLLLELELD ODE DD oo en
xkkKk KHK DRUCKROUTINE ee kr
”
LDA
STA
JSR
CLC
LDA
ADC
STA
LDA
ADC
STA
DEC
BNE
LDA
JSR
LDA
JSR
LDA
STA
STA
RTS
*
+$93
OUTCOUNT
SCHL2
BASADR
+$28
BASADR
BASADR+1
+$09
BASADR+1
OUTCOUNT
SCHL1
#+$1B ;AUTO-LINEFEED
PRINT ‚ausschalten
+$59
PRINT
+$09
$cQ51 ; TEXT wieder
$0954 ‚anschalten
;‚Programmende
EETTITDIEEETTERTELLTEDDODL DON DEE Den nn
xk*kk#%k%H% UNTERPROGRAMME KHK
**
SCHL2 LDX
LDY
STX
STY
LDA
STA
JSR
CLC
LDA
ADC
STA
LDA
ADC
STA
DEC
BNE
RTS
*%*
BASADR
BASADR+1
ZWADR
ZWADR+1
+$08
MEDCOUNT
SCHL3
ZWADR
+$89
ZWADR
ZWADR+1
+$09
ZWADR+1
MEDCOUNT
INLOP
EZ 2 2 2 2 2 12 02 2 2712 27272732327 3272 2 2 2020202 2 0202 2 2 2 2 2 2 22 2 2 2 22
SCHL3 LDX
LDY
STX
STY
LDA
STA
JSR
CLC
LDA
ADC
STA
DEC
BNE
RTS
ZWADR
ZWADR+1
ENDADR
ENDADR+1
+$08
INCOUNT
SCHLA
ENDADR+1
+504
ENDADR+1
INCOUNT
LOOP
KRRKKKRTHHTT EEE KK
SCHL4 LDY
ELP LDA
STA
LDX
LDA
STA
LDA
ROR
36
#500
(ENDADR) ,Y ;Byte aus
ZWERG Bildschirmspeicher
#+$07 ‚7 Bildpunkte
#500
WORKREG
ZWERG ;Bildpunkt
;holen
8l8E:
8191:
8199:
819:
8l9D:
8lA5:
8lA6:
81A9:
8lBl:
8lBl:
81B9:
81BB:
8lBE:
8lBF:
8lc2:
8lCA:
81D2:
81D7:
81DA:
81DB:
8lDE:
8lE6:
488 Bytes
STA
LDA
ROL
EOR
ROR
BCC
LDA
JMP
LDA
JSR
DEX
BNE
INY
CPY
BNE
LDA
JSR
RTS
ZWERG
WORKREG
INVERT ‚eventuell
invertieren
SPC
+$2E ‚Punkt drucken
AUSG
+$29 ;SPACE drucken
PRINT
ILP
+$28
ELP
#+$0D
PRINT ;Zeile beendet
KRRKRKERERTRTK KK HH KK KK KR
PRINT BIT
BMI
STA
RTS
HANDSHK
PRINT ‚Drucker bereit?
PORTDATA ;Ausgabe SLOT 1
KRRKKRRFKKFHKTT HK TH HEHE FH RE HR
DATAUS LDX
HAL LDA
JSR
‚INX
CPX
BNE
RTS
#$4A
DATEN, X ;
COUT ; "SCHRITTWEITE'
‚auf Bildschirm
#+$5A ‚ausgeben
HAL
KRHHRRFRRRRRRRRTRT THREE RER RER
HOLEN JSR
LDA
JSR
WIEDER JSR
STA
CMP
BCS
CMP
BCC
STA
JSR
JSR
CMP
BCS
CMP
BCS
CMP
BCC
JSR
AND
STA
LDA
AND
ASL
ASL
ASL
ASL
ORA
RTS
COUT
#+$BF
COUT
RDKEY
KEYCHR
+$B8 :ist die Eingabe
‚eine Zahl kleiner 9?
WIEDER
#$AF ‚sonst
WIEDER ;Neueingabe
STEPY
COUT
RDKEY
#+$C6 ;‚ASCII der Eingabe
GOZA ;höher als "F"?
+$B9 ‚ist die Eingabe
GOZA ‚eine Zahl?
#+$AF
GOZA ‚Steuerzeichen
COUT
+7000P1111 ;rechtes Nibble
STEPY
KEYCHR
#+700@01111 ;rechtes Nibble
‚ist gleich
‚linkes Nibble
;Schrittweite
STEPY
III EDDERDELEEDE Te 2222 2 2 20222272 20275
KHK DATEN KR
DATEN HEX
8D 8D 8D
8D 8D 8D
CD A®
AB
AB B2
8D8D8D8D8D8D8D8D8D8D8DED
8D8DEDEDEDEDSDSDEDEDEDED
"BILDSCHIRM 1 ODER 2 ?"
8D8D8D8D
"P)OSITIV ODER N)EGATIV ?"
8D8D8D8D
"SCHRITTWEITE "
Peeker 6/85
Apple DOS 3.3
von Ulrich Stiehl
2. Aufl. 1984, 203 S., kart.,
DM 28,-
Dies ist die erste deutschspra-
chige Darstellung des Disket-
tenbetriebssystems DOS 3.3
für den Apple II/II Plus/lie, die
sich sowohl an Applesoft- als
auch an Assembler-Program-
mierer wendet. Sinngemäß ist
das Buch zweigeteilt:
Der erste Teil behandelt aus-
führlich die dem Applesoft-Pro-
grammierer zur Verfügung ste-
henden DOS-Befehle, wobei
die Textfiles wegen ihrer gro-
Ben Bedeutung und der ver-
gleichsweise komplizierten
Handhabung besonders darge-
stellt werden. Viele Textfile-
Tricks werden hier zum ersten-
mal geschildert.
Aber auch im zweiten Teil fin-
det der reine Applesoft-Pro-
grammierer insbesondere in
dem Kapitel „Vermischte Tips,
Tricks und Patches“ zahlreiche
Anregungen. Im übrigen ist der
zweite Teil für Assembler-Pro-
grammierer gedacht. Neben ei-
ner detaillierten Beschreibung
der DOS-Interna enthält dieser
Teil elf vollständige RWTS-An-
wenderprogramme - z.B.
CPM-Refiner, DOS-lose Da-
tendisk, TSL-Maker, File-
Reader, Pseudo-Disk-Driver
und Fastbrun-Routine —, die
Techniken enthüllen, die bis-
lang noch niemals publiziert
worden sind. Dieses DOS-
Buch ist deshalb der unent-
behrliche Begleiter für jeden
Apple-Programmierer.
Apple Il
Basic Handbuch
von Douglas Hergert
304 Seiten, 116 Abb.
DM 32,-
Das Buch ist als Nachschlage-
werk konzipiert, daß seinen
Platz neben jedem APPLE Il,
II+ und Ile haben sollte. Es
richtet sich an Anfänger und
fortgeschrittene Program-
mierer.
BASIC
HAND
BUCH
D.Nerger
Aus der Praxis heraus präsen-
tiert der Autor Tips und Vor-
schläge, die das Programmie-
ren leichter, und zugleich effi-
zienter ma&hen. Alle Applesoft-
und Integer-BASIC-Begriffe
sind alphabetisch aufgelistet
und werden eingehend erklärt.
Peeker 6/85
Dazu werden alle DOS-Befehle
(neben vielen Begriffen der
Computerterminologie) vorge-
stellt.
Beispielprogramme zeigen
dem Nutzer, wie jeder Befehl
funktioniert und helfen, die rich-
tige Anwendung zu üben. Un-
ter anderem lernt der Leser
den besten Weg, um FOR/
NEXT-Schleifen und IF/THEN-
Entscheidungen für seine
Zwecke einzusetzen.
Durch die präzise und leicht
verständliche Sprache des Au-
tors werden auch schwierige
Befehle einfach in der Anwen-
dung.
Apple Maschinen-
sprache
von Don und Kurt Inman
1984, 208 S., zahlr. Abb. und
Tabellen, DM 49,—
SPRACHE
Dieses Buch ist wahrscheinlich
die beste Einführung in die
6502-Programmierung für den-
jenigen Assembler-Anfänger,
der zuvor noch nie ein Maschi-
nenprogramm geschrieben
hat.
Aus dem Inhalt:
Applesoft II BASIC - kurzge-
faßt — Alles über Zeichen - Al-
les über Speicher - Alles über
Maschinenbefehle — Maschi-
nenprogramme mit BASIC ein-
geben - Graphik — Text- Ton—
Arithmetik — Was tun mit den
Maschinenprogrammen
Apple Il
leicht gemacht
von Joseph Kascmer
1984, 185 S., zahlr. Abb., kart.,
DM 28,-
Dies ist ein Buch, wie es sich
jeder Apple-Anfänger nur wün-
schen kann: Schrittweise,
leichtverständliche Anleitung
zum Umgang mit dem Apple
mit einigen durchsichtigen, un-
komplizierten Beispielen in Ap-
plesoft, die ihn nicht Abschrek-
ken, sondern ermutigen sollen,
sich mit dem Gerät näher ver-
traut zu machen. Damit ist „Ap-
ple Il leicht gemacht“ das idea-
le Einsteigerbuch für den rei-
nen Anwender, der nicht nur
„auf den Knopf drücken“, son-
dern zumindest einige Details
aus der Black Box namens Ap-
ple erfahren will.
Aus dem Inhalt:
Kontrolle des Geräts — Schrei-
ben und Zeichnen auf dem
Bildschirm -— Geheimnisvolle
Abläufe: Programme - Ver-
schiedene Eingriffsmöglichkei-
ten — Mobile Speicher: Disket-
ten — Kontrollmöglichkeiten —
Das Innenleben
Apple Assembler
Tips und Tricks
von Ulrich Stiehl
1984, 226 S., 3 Abb., kart.,
DM 34,—
„Apple Assembler“ wendet
sich an alle, die bereits Anfän-
gerkenntnisse der 6502-Pro-
grammierung haben - z.B.
aufgrund des Buches „Apple
Maschinensprache“ — und nun-
mehr ein Nachschlagewerk für
ihren Apple Il Plus/lle/lic su-
chen, in dem alle wichtigen
ROM-Routinen sowie eine
Vielzahl sonstiger Hilfspro-
gramme in einer systemati-
schen Form zusammengestellt
werden. Insgesamt umfaßt die-
ses Buch über 40 Utilities, dar-
unter mehrere völlig neuartige
Programme wie Double-Lores,
Double Hires, Screen-Format
u.a.
Der erste Teil enthält ein Repe-
titorium der wichtigsten Befeh-
le, Adressierungsarten und
sonstigen Besonderheiten des
6502.
Im zweiten Teil werden alle
Adressen des Monitors zusam-
mengestellt, die für Assembler-
Programmierer von Nutzen
sein können. Darüber hinaus
findet der Leser Unterroutinen
für hexadezimale Addition/
Subtraktion/Multiplikation/Divi-
sion, Binär-Hex-ASCIl-Um-
wandlung usw.
Der dritte Teil befaßt sich mit
der Speicherverwaltung der
Language Card und der Ile-
64K-Karte und enthält Move-
Programme zum Verschieben
von Daten in die und aus der
Language Card sowie der 64K-
Karte.
BUCHSHOP
Der vierte Teil ist dem Ap-
plesoft-ROM gewidmet und li-
stet eine große Anzahl nützli-
cher Interpreter-Adressen. Bei
den Utility-Programmen liegt
das Schwergewicht auf Fließ-
kommamathematik einschließ-
lich Print Using.
Der letzte Teil behandelt den
Text- und Graphikspeicher.
Neben einem professionellen
Maskengeneratorprogramm
werden auch Routinen zur
Double-Lores- und Double-Hi-
res-Grafik vorgestellt.
Arbeiten mit dem
Macintosh
von N. Hesselmann
416 Seiten, 320 Abb. DM 54,—
Das Buch erklärt den Umgang
mit dem Macintosh von Grund
auf, wobei auch auf elementare
Dinge eingegangen wird, wie
z. B. die Benutzung der Tasta-
tur und der Maus, das Einlegen
von Disketten und den System-
start. Ganz besonderes Augen-
merk wird auf die Erklärung der
speziellen Software-Umge-
bung des Macintosh gelegt,
wobei das Menü- und Fenster-
konzept sowie das Anwählen
durch Piktogramme gekenn-
zeichneter Funktionen klar dar-
gestellt wird.
Der Umgang mit den Program-
men MacPaint und MacWrite
wird erläutert; dies geschieht
teilweise anhand von Beispie-
len, die leicht nachvollzogen
werden können. Ein umfangrei-
ches Kapitel ist dem für den
Macintosh erhältlichen Micro-
soft-BASIC gewidmet.
BASIC Ubungen
für den Apple
von J. P. Lamoitier
1983, 252 S., zahlr. Abb., kart.,
DM 38,—
Das Buch ist konzipiert, allen
Apple-Anwendern Applesoft-
BASIC durch praktische Ubun-
gen an Hand von reellen Pro-
grammen beizubringen. Daten-
verarbeitung, Statistik, kom-
merzielle Programme, Spiele
und vieles mehr. Jede Übung
beinhaltet eine Beschreibung
der Problemstellung, eine Ana-
Iyse der Lösungsmöglichkei-
ten, ein Flußdiagramm und ein
fertiges Programm samt Pro-
belauf.
Aus dem Inhalt:
Ihr erstes BASIC-Programm —
Flußdiagramme — Übungen mit
Integerzahlen — Elementare
Beispiele aus der Geometrie —
Allgemeine Ubungen aus der
Datenverarbeitung — Mathema-
tische Berechnungen - Kauf-
männische Berechnungen —
Spiele - Operations Research
— Statistik
Apple ProDOS
für Aufsteiger
Band 1
von Ulrich Stiehl
1984, 202 S., kart., DM 28,—
ProDOS ist das neue „profes-
sionelle DOS“ (Professional
Disk Operating System) für den
Apple Ile sowie den mit einer
Language Card ausgestatteten
Apple Il Plus. Band 1 befaßt
sich mit den theoretischen
Grundlagen von ProDOS, der
internen und externen Spei-
cherorganisation und enthält
grundlegende Beispielpro-
gramme für Assembler-Pro-
grammierer sowie generelle
Untersuchungen zum BASIC-
SYSTEM. Da ProDOS über er-
heblich vielfältigere und lei-
stungsfähigere, zugleich je-
doch erheblich kompliziertere
Dateistrukturen verfügt, sind
theoretische Kenntnisse von
ProDOS unabdingbar, wenn
man die Features von ProDOS
voll ausschöpfen will.
Aus dem Inhalt:
Ein erster Überblick - ProDOS
und DOS 3.3 — Interne Spei-
cherorganisation — Externe
Speicherorganisation — MLI
(Machine Language Interface)
— ProDOS für Applesoft-Pro-
grammierer
37
Fourier-Analyse
von Peter Walber
HIT
LH IH
FEHTLEEFR
Z
zus:
HHLD
2 [pR
WEHR
Tz
MHZ
7)
EEE
\
TERM
IT N
——N
SUN
a
an BT Ze
ee iR Wen 1)
N
ZN
38
Mrz
eM72
le
. Z
—
Jeder, der einmal vor das Problem gestellt
war, eine Funktion zu approximieren, wird
sicher bereits auf die Fourier-Analyse ge-
stoßen sein, vor allem bei der Darstellung
von unstetigen periodischen Funktionen,
also mathematisch schwierig darstellbaren
Kurvenzügen.
Grundlage des Programms ist die von
Fourier im Jahre 1822 aufgestellte Theo-
rie, die besagt, daß sich beliebige periodi-
sche Funktionsverläufe als Linearkombi-
nation von Sinus- und Cosinus-Termen
darstellen lassen. Mathematisch formuliert
sieht die Theorie so aus:
ft) = a, + & a, cos(kwt) + b, sin(kut)
mit den sog. Fourier-Koeffizienten:
= : f ft) cos(kt) dt
bx = - f ft) sin(kot) dt
dabei muß die in den Integralen auftreten-
de Funktion fft) in einem IntervallO <t<T
vorliegen (siehe Abb. 1).
Bei manchen Funktionen sind die auftre-
tenden Integrale sehr schwierig zu be-
rechnen, oder es gelingt nicht, den Kur-
venzug mathematisch zu beschreiben
(z.B. Brummspannung eines Netzteiles).
Genau hier kann das Programm einsetzen.
Ich habe folgende Gliederung des Pro-
gramms vorgesehen:
1. Analyse eines Kurvenzuges nach Stütz-
stellen (FOURIER.MAIN).
2. Ausgabe des Frequenzspektrums
(FOURIER.SPEC).
3. Synthese einer Funktion aus Fourier-
Koeffizienten (FOURIER.SYN).
Die Aufteilung des Programms in drei ein-
zelne selbständige Module wurde aus
Speichergründen gewählt, da neben gro-
Bem Komfort auch eine grafische Auswer-
TR tung geboten werden sollte.
I
Mn FL [73
—IT
Peeker 6/85
at fu cos (kat) dt
Bild 1
Das Modul FOURIER.MAIN
Das Modul gliedert sich in die folgenden
Teile:
— Initialisierung und Hauptmenü (Zeilen
1000-1420).
— Eingabe der Stützstellen wahlweise von
Diskette, Tastatur oder von einer analyti-
schen Funktion (Zeilen 1450-1750).
— Berechnung der Fourier-Koeffizienten
(Zeilen 1760-2230).
— Ausgabe der Ergebnisse und Plot der
Funktion (Zeilen 2240-2730 und
2980-3500).
— Abspeichern der berechneten Daten (ab
Zeile 3630).
Es folgt nun eine genauere Beschreibung
der wichtigen Teile im Programm, ver-
mischt mit den unbedingt notwendigen
Hintergrundinformationen über die Fou-
rier-Analyse.
Eingabe der Stützstellen
Da wir nicht in der Lage sind, eine unendli-
che Reihe zu berechnen, müssen wir eine
Obergrenze festlegen. Wir brechen also
die Reihe ab und approximieren nur mit
einem trigonometrischen Polynom vom
Grade n.
ft) = a0 + & a, cos(kot) + b, sin(kat)
Der Algorithmus von Runge (1), der hier
verwendet wird, erwartet 2 - n Stützstellen.
Diese müssen dem Graphen in äquidi-
stanten Intervallen entnommen werden.
Betrachten wir hierzu die in Abb. 2 darge-
stellte Rechteckfunktion. Die Funktions-
werte f(0) = 1, f(1) = 1, f(2) = 1,18) = 1,
f(4) = 1 f(5) = 0, f(6) = 0, f(7) = O können
dem Graphen entnommen werden. Hier-
bei ist dt der Abstand auf der t-Achse
zwischen dem Wert f(i) und fli + 1).
&
-
ult)
wu.
vi 33 3 5838 5
u
a
Bild 2 2n
Peeker 6/85
Berechnung der Koeffizienten
Der hier verwendete Algorithmus verlangt
vom Programm die Aufsummierung nach
den folgenden Formeln:
2n—1
a, = . f(t) cos
Der Beweis folgt aus den Orthogonalitäts-
relationen für trigonometrische Funktionen
und ist hier sicher nicht von Interesse (2).
Dieses Gleichungssystem ist nur mit gro-
Bem Rechenaufwand lösbar. Wir benutzen
deshalb die Symmetrie-Eigenschaften der
Sinus- bzw. Cosinus-Funktion.
cos (wt)
sin (wt)
wt=5 Bild 3
Wie aus Abb. 3 ersichtlich ist, wiederholen
sich alle Funktionswerte nach x = n/2.
Weiter gilt sin(x) = cos(n/2 - x). Wir bilden
daher zunächst die zweite Halbperiode auf
die erste ab und danach die zweite Viertel-
periode auf die erste. Dies wurde in den
Zeilen 4500-4600 verwirklicht. Die zuge-
hörigen Sinus-Werte werden in den Zeilen
1610-1640 im Feld X(l) abgelegt. In den
Zeilen 1750-2220 erfolgt dann die eigent-
liche Berechnung der Fourier-Koeffizien-
ten. Dieser Algorithmus ist von Sarnow in
(4) beschrieben worden. Ab Zeile 2230
werden die Ergebnisse ausgegeben, ent-
weder auf den Bildschirm oder sofort zum
Drucker. Die Druckerausgabe muß even-
tuell an einen anderen Drucker angepaßt
werden (Zeile 2800 und 4620).
Eine weitere Option dieses Moduls ist die
Berechnung der Fourier-Sinus-Reihe.
Dies ist die Darstellung der Reihe in der
Form:
fit) = 0, + 2 0, sin(kot + px)
Grafik-Auswertung
Damit das Programm nicht nur zur Schaf-
fung von Datengräbern dient, wurde eine
komfortable Grafik-Auswertung eingebaut
(2400 ff.). Dabei wird zuerst die Funktion
mit wählbarem Grad des trigonometri-
schen Polynoms geplottet. Dadurch kann
man sich die Genauigkeit der Approxima-
tion Schritt für Schritt ansehen. Danach
wird die Funktion noch einmal nach den
eingegebenen Stützstellen gezeichnet.
Die Beschriftung der Achsen erfolgt durch
POKESs von bestimmten Bitmustern direkt
in den Grafik-Speicher.
4 Technik 44
Speicherung der Ergebnisse
Im Anschluß daran besteht die Möglich.
keit, den Plot als Bild-File abzuspeichern
oder eine Hardcopy auszugeben. Weiter
wird erfragt, ob die Koeffizienten oder die
Funktionswerte als Datei für spätere Be-
trachtungen gesichert werden sollen. Man
kann sich damit eine regelrechte Biblio-
thek von Funktionen anlegen. Ab Zeile
3630 folgen dann einige Unterprogramme,
die die beschriebenen Möglichkeiten ver-
wirklichen.
Eine Besonderheit liegt in der Handha-
bung der Daten-Files. Dem Dateinamen
wird automatisch ein Suffix angehängt.
Sollen also Koeffizienten abgespeichert
werden, so gibt man z.B. „DREIECK“ als
Dateiname an; auf der Diskette erscheint
dann eine Datei mit dem Namen „DREI-
ECKKOEFF“. Will man die Daten wieder
einlesen, dann muß man auf die Frage
nach der Datei den vollen Namen ange-
ben, also „DREIECKKOEFF“.
Im Programm wurde als maximaler Grad
der Fourier-Reihe 24 festgelegt. Dies ist
sicher für den normalen Fall ausreichend.
Ein Nachteil liegt ohne Zweifel in der Un-
genauigkeit bei der Analyse sehr unsteti-
ger Funktionen. Das Verfahren wird mit
zunehmender Stützstellenzahl natürlich
exakter. Genauere Untersuchungen zei-
gen jedoch, daß der Rechenaufwand nicht
proportional steigt, sondern viel stärker.
Außerdem kommt noch die mangelhafte
Rechengenauigkeit des Basic-Interpreters
zum Tragen. Abhilfe schafft zumindest teil-
weise der Übergang auf ein FORTRAN-
Programm mit Double-Precision (3). Die
hier erzielten Ergebnisse stellen aber si-
cher einen sinnvollen Kompromiß dar.
Das Programm wurde für 80 Zeichen/Zeile
geschrieben und benutzt deshalb Ctri-L
statt des HOME-Befehls. Da beim Ile mit
erweiterter 80-Zeichen-Karte und dem IIc
die HGR2 in Verbindung mit der 80-Zei-
chendarstellung nicht aufgerufen werden
kann, wird vor der Grafik auf Normalausga-
be zurückgeschaltet.
Durch den menügesteuerten Aufbau sind
Bedienungsfehler weitgehend ausge-
schlossen.
Beispiele 1 zeigt die Möglichkeit des Pro-
gramms. Bei der dargestellten Rechteck-
funktion wurde der Gradn =5 undn = 12
gewählt. Hierbei wird die unterschiedliche
Güte der Approximation deutlich.
Die folgenden Module FOURIER.SYN und
FOURIER.SPEC können aus Platzgründen
nicht abgedruckt werden und sind daher
nur auf der Peeker Sammeldiskette ent-
halten.
39
Das Modul FOURIER.SYN
Der Aufruf erfolgt im Hauptmenü mit „2
für Synthese. Dieser Teil bietet die Mög-
lichkeit,aus früher berechneten Koeffizien-
ten eine Funktion darzustellen. Dies ge-
schieht mit wählbarem Grad des trigono-
metrischen Polynoms. Das Modul selbst
besteht zum größten Teil aus Teilen des
Hauptprogramms FOURIER.MAIN.
Das Modul FOURIER.SPEC
Der Aufruf erfolgt mit der Wahl von „3“ für
Frequenzspektrum im Hauptmenü. Bevor
das Modul genauer beschrieben wird, wol-
len wir zunächst die nötige Theorie kurz
erläutern. Das „Spektrum“ einer Funktion
gibt Auskunft über die Beträge der enthal-
tenen Schwingungsanteile. Man kann also
aus der Darstellung sofort entnehmen,
welche Frequenzanteile in welcher Stärke
vertreten sind. Die Verwirklichung sieht
nun wie folgt aus:
— Eingabe der Koeffizienten von wahlwei-
se Disk oder Tastatur (Zeilen 1000-1160).
— Vorbereiten des Plots (Zeilen
FOURIER.MAIN
1008
1919
1929
1930
1049
1059
1069
1078
1075
REM x**%* Fourier-Analyse
REM *** Peter Walber, Mai
REM
HIMEM: 16384
D$ = CHR$ (4)
PRINT D$; "PR#3'"
xx%*
'84 xx%*
DIM A(25),B(24),Y1(169) ,22(5®),SD(25)
DIM AA(25),PHI(25)
1400 IF IN < 1 OR IN > 4 THEN 1399
40
DIM Y(59),X(59),YY(58),SS(25),DS(25),DD(25)
. . En . F o 1 FR I E R Bu A H A L T = 2
FesSı in IJRS=SZPI
RR
Beispiel 1:n = 5 (links) undn = 12 (rechts)
1160-1420). Hierzu gehört die Erstellung
des Koordinatenkreuzes und eines Binär-
Feldes zur Beschriftung des Plots.
— Zeichnen des Plots (Zeilen 1450-1730).
Dazu wird vorher auf den maximalen Wert
normiert und dann proportional zur Größe
des betreffenden Koeffizienten ein Strich
bei der zugehörigen Frequenz gezeichnet.
Dabei sind die Koeffizienten a(l) durchge-
zogen und die b(l) gestrichelt dargestellt.
— Abspeichern des Bildes, der Koeffizien-
ten und die Hardcopy-Möglichkeit (Zeilen
1750-Ende).
GOTO 119®
REM
REM x*x**
REM
PRINT :
PRINT
3";: PRINT NEXT I
1278 PRINT " "; FOR I = ® TO
12808 FOR I = 1 TO 71: PRINT " ";: NEXT I PRINT
1298 PRINT PRINT :
1368 PRINT " ";
131® PRINT TAB(2®)'"Ende PRINT :
4":% PRINT PRINT :
1326 PRINT " ”:; REM
13368 FOR I = 1 TO 71: PRINT " ";: NEXT I
1349 PRINT REM
1350 FOR I = ® TO 79: PRINT "-";: NEXT I
1360 PRINT TAB(2®)"Bitte die Eingabe der Programmwahl' GOSUB 4539
1380 FOR I = ® TO 79: PRINT "-";: NEXT I: PRINT Al =9B:A2=d
1398 INPUT "1,2,3,4 ";IN FOR I
Al =Al
Start der Analyse
REM **%* Eingabe der Stützstellen **x*
PRINT CHR$ (12)
PRINT "Analyse einer Funktion nach Runge"
PRINT "Notwendige Bedingung :
geradzahlig "
IF IN$ = "D" THEN GOSUB 3949:DT$ = "J":
IF IN$ < > "T" AND IN$ < > "F" THEN 1469
"Grad der Fourier-Reihe:
IF N/ 2 <> INT (N / 2) THEN PRINT :
..N.. muß durch zwei teilbar sein.":
IF N > 24 THEN PRINT :
M- 1:
Die Zeilen, die die Files anlegen, sind be-
reits in FOURIER.MAIN vorhanden.
Benötigte System-Konfiguration: Apple Il,
DOS 3.3, 80-Zeichenkarte, Drucker mit
Grafik-Interface.
Literatur:
(1) Zurmühl, Praktische Mathematik für In-
genieure und Physiker, Springer 1965
(2) Hamming, Numerical Methods for
Scientists and Engineers, McGraw-Hill,
1962
(3) McCracken, FORTRAN
(4) Sarnow, mc 1/84, S. 82-85
ON IN GOSUB 1469, 3529,3579,361®
*x*%
Grad der Reihe
PRINT "Eingabe der Stützstellen von (D)isk,
(T)astatur oder von einer": PRINT:
"analytischen (F)unktion'
PRINT
GOTO 1599
IEEN
PRINT "Bitte
PRINT : GOTO 1569
PRINT "Nmax=24":N = 24
IF IN$ = "F" THEN GOSUB 4319
X(I) = SIN (I « DX):X(N - I) = X(I):X(N+ I) = -
X(I):X(M- I) =X(N+ I)
THEN 179®
THEN 1790
M-L1
= ".
1080 PRINT CHR$ (12) PRINT :
1098 FOR I = ® TO 79: PRINT "-";: NEXT I
1188 PRINT " Fourier-Analyse'"
1118 FOR I = ® TO 79: PRINT "-";: NEXT I: PRINT GET IN$
1120 PRINT " ";
1138 PRINT "Optionen:": PRINT " ";: FOR I = ® TO 72: PRINT
">: NEXT I: PRINT PRINT
1148 PRINT " "; INPUT
1158 PRINT TAB(2®)'"Analyse einer einzugebenden Funktion
1";
1155 PRINT
1160 PRINT " "; P=N/2:M=2#N
1180 FOR I = 1 TO 71: PRINT " ";: NEXT I
1185 PRINT DX = 3.141592654 / N
12088 PRINT " "; FOR I = ® TO P
1218 PRINT TAB(2®)'"Synthese einer gesuchten Funktion
2:% PRINT
1220 PRINT " "; NEXT I
1230 FOR I = 1 TO 71: PRINT " ";: NEXT I IF DT$ u
1240 PRINT IF IN$ a
1258 PRINT" "; FOR I = ® TO
1268 PRINT TAB(2®)"Frequenzspektrum ausgeben PRINT "YI";T;
© INPUT IT
PRINT "TI": E;"j= #;7IT): MEER LI:
INPUT "Änderung eines eingegebenen Wertes?
(J/N)";IN$: IF IN$ < > "J" THEN 1749
INPUT "Index des zu ändernden Wertes";I
INPUT "Neuer Wert";Y(I):
GOTO 1719
REM *** Start der Berechnung *%*%*
Y(8) = Y(ß) / 2:Y(M) = Y(B):Y(N) = Y({N) / 2
ö TO P STEP 2
+ SS(I)
Peeker 6/85
1820 NEXT I
1830 FOR I = 1 TO P STEP 2
184ß A2 = A2 + SS(I)
1850 NEXT I
1860 A(®) = (Al + A2) / M:A(N) = (Al - A2) /M
1878 FOR Nl = 1 TO P STEP 2
1880 Al = B:A2 = B:Bl = P:B2 = 9
1898 L = :K = P
1988 FOR I = ß TO P STEP 2
1918 Al = Al + DS(I) &* X(K):B2 = B2 + SD(I) « X(L)-
1928 L=L+2+Nl: IFL=MTHENL=L-M
1930 K=K+2+ Nl: IFK=MTHENK=K-M
1949 NEXT I
1958 PRINT ">"
19608 L = NL:K=P+HNl
197® FOR I = 1 TO P STEP 2
19808 A2 = A2 + DS(I) = X(K):Bl = Bl + SD(I) * X(L)
1998 L=L+2+Nl: IFL=MTHENL=L-M
2200 K=K+2«Nl: IFEK=MTHENK=K-M
20190 NEXT I
2020 A(Nl) = (Al + A2) / N:A(N - Nl) = (Al - A2) /N
2030 B(Nl) = (Bl + B2) / N:B(N - Nl) = (Bl - B2) /N
2040 NEXT Nl
2050 FOR Nl = 2 TO P STEP 2
2068 Al = B:A2 = B:Bl = B:B2 = 9
2078 L = B:K = P
2080 FOR I = ßÖ TO P STEP 2
2090 Al = Al + SS(I) * X(K):B2 = B2 + DD(I) « X(L)
2100 L=L+2+Nl: IFL=MTHENL=L-M
2118 K=K+2+ Nl: IFK=MTHENK=K-M
2120 NEXT I
2138 L=Nl:K=P+Nl
2140 FOR I = 1 TO P STEP 2
2158 A2 = A2 + SS(I) * X(K):Bl = Bl + DD(I) « X(L)
2l6d® L=L+2» Nl: IFL=MTHENL=L-M
2170K=K+2+Nl: IFK=MTHENK=K-M
2180 NEXT I
2198 A(Nl) = (Al + A2) / N:A(N - Nl) = (Al -A2) /N
2200 B(Nl) = (Bl + B2) / N:B(N - Nl) = (Bl - B2) /N
2210 NEXT Nl
2220 REM
2230 REM **%* Ende der Berechnung *%**
2240 REM *%** Beginn der Ausgabe x*%*
2250 REM
2269 INPUT "Ergebnis auf den (D)rucker oder (B)ildschirm?
"-1IN$
2278 IF IN$ = "D" THEN GOSUB 3309: GOTO 2351
2280 IF IN$ < > "B" THEN 2269
2298 PRINT "Ergebnis:": PRINT "-—-—-— ": PRINT
2300 PRINT : PRINT "a(®)=";A(®): PRINT
2318 FOR I = 1 TON
2320 PRINT "A(";I;")=";A(I), TAB(48)"B(";I;")=";B(I)
2330 NEXT I: PRINT : INPUT "Weiter ——->> CR <<---";IN$
23408 PRINT : INPUT "Ausgabe auf den Drucker? (J/N)";DD$
2350 IF DD$ = '"J" THEN GOSUB 3369: PRINT
2351 PRINT "Darstellung als Fourier-Sinus-Reihe:'": PRINT
2352 FOR I = 1 TO N: LET AA(I) = SQR (A(I) 1 2 +B(I) 1 2)
2353 IF B(I) = ® AND A(I) = ® THEN PHI(I) = B: GOTO 2365
2354 IF B(I) = ® AND A(I) > ® THEN PHI(I) = ß: GOTO 2365
2355 IF B(I) = ® AND A(I) < ® THEN PHI(I) = 189: GOTO 2365
2356 IF A(I) = ® AND B(I) > ® THEN PHI(I) = 99: GOTO 2365
2357 IF A(I) = ® AND B(I) < ® THEN PHI(I) = - 99: GOTO 2365
2360 LET PHI(I) = ATN (A(I) / B(I))
-2361 LET PHI(I) = 180 « PHI(I) / 3.141592654
2365 NEXT I
2366 PRINT "C(®)=";A(®): PRINT
2367 FOR I = 1 TO N: PRINT "C(";I;")= ";AA(TI);: HTAB 20:
PRINT "Phi(";I;")= ";PHI(I): NEXT I
2368 PRINT : INPUT "Weiter —->>CR<<--";IN$
2369 REM
2378 REM *** Vorbereitung des Plots xxx
2380 REM
2398 PRINT CHR$ (1)
2400 OM = 2 * 3.141592654: PRINT CHR$ (12)
241l® PRINT TAB(2®)"Vorbereitung des Plots": PRINT
"TAB (29 ) "----—-- 0. . "
2420 PRINT : PRINT "Plotten der Funktion mit wählbarer
Genauigkeit möglich": PRINT
2430 PRINT : INPUT "Annäherung einschließlich der Oberwelle
Nr.:";G%: IF G% > N THEN G% = N
2440 IF G% > N THEN G% = N
2450 IF G% < ® THEN PRINT : PRINT "Fehlerhafte Eingabe ":
GOTO 243®
2468 PRINT : PRINT "Moment bitte": PRINT
2470 REM
2480 REM *** Approximation mit den oben berechneten
Fourier-Koeffizienten x***
Peeker 6/85
technik 4.4
REM
FOR Il = ß TO 159
S=A(ß)
FOR I2 = 1 TO 6%
S=S+ A(I2) * COS (I2 * OM * Il / 160) + B(I2) « SIN
(I2 *x OM * Il / 16ß)
NEXT I2
YÄM(Il) =S
NEXT Il
J=]1
PRINT "au:
GOSUB 300%
FOR I = ß TO 159
HPLOT I + 19,96 - 90 * Yl(I) / YO
NEXT I
INPUT "---->> CR ";IN$
FOR I=8 TOM-LN1
IF ABS (Y(I)) > YO THEN YO = ABS (Y(T))
NEXT I
FOR I = TOM-]1l
C=6:D d:E=G:F=d
C=1® +2 x 1Ix 79 / M:D = 96 - 90 = Y(I) / YO:E = 19
+2 % (I+1) x 79 /M:F = 96 - 98 « Y(I +1) / YO
HPLOT C,D TO E,F
NEXT I
GET ZZ$: PRINT CHR$ (12)
PRINT D$;"PR#3'": TEXT
INPUT "Abspeichern des Plots als Bild-File? (J/N)";BF$
IF BF$ < > "J" THEN 2790
PRINT
INPUT "Auf Slot=";S: PRINT : INPUT "und Drive=";D:
PRINT
PRINT D$;"BSAVE FPIC1,A$4000,L$1IFFF,S";S;",D";D
PRINT : INPUT "Hardcopy des Plots erstellen?
(J/N)";HK$
IF HK$ = "J" THEN GOSUB 462
PRINT
PRINT : INPUT "Erstellen eines weiteren Plots mit
anderer Genauigkeit? (J/N)";NP$
IF NP$ = "J" THEN PRINT CHR$ (12): GOTO 2419
PRINT
INPUT "Fourier-Koeffizienten abspeichern? (J/N)";IN$
IF IN$ = "N" THEN PRINT : GOTO 29@®
IF IN$ < > '"J'" THEN 2859
GOSUB 3639
PRINT
INPUT "Eingegebene Funktionswerte speichern?
(J/N)";IN$
PRINT FRE (®)
IF IN$ = "N" THEN 1980
IF IN$ < > "J" THEN 2999
FOR I=9 TOM - 1:Yl(I) = Y(I): NEXTI
NF = N: GOSUB 379®
GOTO 1989
REM
REM *%*%* Bildrahmen generieren x*%*%*
REM
X0 = 2 * 3.141592654:XU = 9:YO = - 1.E25:YU = 1.E25
FOR I = ® TO 159
IF Yl(I) > YO THEN YO = YL(I)
IF YlM(I) < YU THEN YU = Yl(I)
NEXT I
FOR I = ® TO 29: PRINT : NEXT I
PRINT : PRINT TAB(1®)"Ymax= '";YO
PRINT : PRINT TAB(1®)"Ymin= ";YU
PRINT
IF ABS (YU) > YO THEN YO = ABS (YU)
PRINT TAB(19)"XU= ";XU
PRINT : PRINT TAB(1®)"Xo= ";XO0
PRINT : PRINT "Nährung der Funktion nach Fourier
einschließlich Oberwelle Nr.: ";G%: PRINT
PRINT : PRINT "Weiter ——-->> CR <<---";: GET XX$: PRINT
FRE (9)
PRINT D$;"PR#ß": HGR2 : HCOLOR= 7
GOSUB 5®@®: REM *** Bildrahmen generieren *%*%*
FOR I = ® TO 199
HPLOT 18,46 + I
NEXT I
FOR I = 8 TO 179
HPLOT I,96
NEXT I
FOR I = ® TO 89 STEP 1®
HPLOT 9,96 —- I
NEXT I
FOR I = 11 TO 91 STEP 19
HPLOT 1,97
NEXT I
RETURN
®
41
42
#3 Druckerausgabe #kakakakr
Die hier verwendeten Druckersteuerzeichen gelten
für den STAR
GEMINI-Drucker und sind an den verwendeten Drucker
anzupassen.
REM CHR$(9);"G2" gibt eine Hardcopy der HGR2-Seite auf
den Drucker.
REM CHR$(87);CHR$(®) schaltet auf Normalbreite zurück.
REM CHR$(87) ;CHR$(1) schaltet auf Breitschrift um.
REM
PRINT D$;"PR#1": PRINT CHR$ (27); CHR$ (87); CHR$ (1)
PRINT '"FOURIER-ANALYSE"
PRINT "-------------------—-----—— !!
PRINT CHR$ (27); CHR$ (87); CHR$ (PP)
PRINT "Algorithmus: Runge": PRINT
PRINT CHR$ (15)
PRINT "Anzahl der eingegebenen Stützstellen: ";M
PRINT : PRINT "Grad des trigonometrischen Polynons: ";N
PRINT "Koeffizienten: "
PRINT "a(®)= ";A(®)
PRINT : FOR I = 1 TON
PRINT TAB(1®)"a(";I;")= ";A(I); CHR$ (27); CHR$ (98);
CHR$ (48) ;"D(";1;")= ";B(T)
PRINT
NEXT I
PRINT : PRINT "Fourier-Analyse'": PRINT : PRINT "(c)
Peter Walber, Mai '84"
PRINT CHR$ (27); CHR$ (59)
PRINT D$; "PR#3'"
REM CHR$(98) ;CHR$(49) setzt den nächsten Tabulator auf
die 49. Spalte
REM CHR$(5®) Zeilenvorschub auf 1/6 Inch
RETURN
REM
REM x Synthese kai
REM
PRINT : PRINT "FOURIER.SYN wird geladen"
PRINT D$; "RUN FOURIER.SYN"
REM
REM #3 kk%* Spektrum ki
REM
PRINT : PRINT "FOURIER.SPEC wird geladen"
PRINT D$; "RUN FOURIER.SPEC"
END
REM
REEM 3 ale aa ak ae ak ak ak ak ak ak aka a a
REM
PRINT CHR$ (12)
PRINT "Abspeichern der Fourier-Koeffizienten"
PRINT : INPUT "Filename:";DN$
PRINT : INPUT "Slot:";S
PRINT : INPUT "Drive:";D
PRINT D$; "OPEN" ;DN$ + "KOEFF";",S";,S;",D";D
PRINT D$; "DELETE'";DN$ + "KOEFF"
PRINT D$;"OPEN";DN$ + "KOEFF"
PRINT D$; "WRITE";DN$ + "KOEFF"
PRINT N: PRINT A(®)
FOR I = 1 TO N + 3: PRINT A(I): PRINT B(I): NEXT I
PRINT D$; '"CLOSE"
RETURN
REM
REM 3a a ale ak ake ale ale aaa
REM
PRINT CHR$ (12)
PRINT "Abspeichern der Funktionswerte"
PRINT : INPUT "Filename:';DN$
PRINT : INPUT "S101:":5
PRINT : INPUT "Drive:';D
PRINT D$;"OPEN";DN$ + "WERTE" ;",S";S;",D";D
PRINT D$; "DELETE";DN$ + "WERTE"
PRINT D$;"OPEN";DN$ + "WERTE"
PRINT D$:"WRITE";DN$ + "WERTE": PRINT NF: FOR I = ® TO
2«NF+2
PRINT Yl(I): NEXT I
PRINT D$; "CLOSE"
RETURN
REM
REN SB BB BB
REM
GOSUB 423
PRINT CHR$ (12)
PRINT "Einlesen der Funktionswerte'
PRINT : INPUT "Filename: ";DN$
PRINT : INPUT "Slot:";S: PRINT : INPUT "Drive:";D
PRINT D$; "OPEN" ;DN$;",S";S;'",D";D
PRINT D$;"READ ";DN$
INPUT YZ$: PRINT :N = VAL (YZ$):P =N / 2:M
PRINT
FOR I = TO M - 1: INPUT YZ$: PRINT :Y(I) = VAL
(YZ$): NEXT I
PRINT D$; "CLOSE"
RETURN
REM
REM 3er
REM
D$ = CHR$ (4): GOSUB 4239
PRINT CHR$ (12)
PRINT "Einlesen der Fourier-Koeffizienten"
PRINT : INPUT "Filename:'";DN$
PRINT : INPUT "Slot:";S
PRINT : INPUT "Drive'";D
PRINT D$; "OPEN" ;DN$;",S";S;",D";D
PRINT D$; "READ" ;DN$
INPUT N$: PRINT :N = VAL (N$): INPUT AB$: PRINT :A(®)
= VAL (AB$)
FOR I = 1 TO N: INPUT YZ$: PRINT :A(I) = VAL (YZ$):
INPUT YZ$: PRINT :B(I) = VAL (YZ$): NEXT I
PRINT D$; "CLOSE"
RETURN
PRIN
STOP
DEF FN F(I) = 10 *« EP ( - If 2)
FOR I = ® TO 19: PRINT : NEXT I
PRINT "Da die Fourier-Analyse nur periodische
Funktionen auswertet, muß dem": PRINT : PRINT
"Programm mitgeteilt werden, wo die Periodendauer T
liegen soll."
INPUT "Obere Grenze='";TMAX
LET DT = TMAX / M:DT = INT (DT)
FOR I = ® TO TMAX - DT
Y(I)=FNF(I)
NEXT I
RETURN
REM
REM *%*%* Abbildung auf den 1. Quadranten
REM
FOR I=9 TON
ZZ(I) Y(I) + Y(M - I):YY(I) = Y(I) - Y(M - I): NEXT I
ZZ(P) = ZZ(P) / 2:YY{P) = YYIP) / 2
Y(8) = 2 » Y(B):Y(M) = Y(B):Y(N) = 2 * Y(N)
FOR I=B8TON/2
SS(I) = ZZ(I) + ZZ(N - I):DS(I) = ZZ(I) - ZZ(N - I)
SD(I) = YY(I) + YY(N - I):DD(I) = YY(I) - YY(N - TI):
NEXT I
RETURN
REM
REM *%*%* Hardcopy %*%*%*
REM
PRINT : INPUT "Plot vergrößert zur Ausgabe? (J/N)";VG$
IF VG$ = "J" THEN 467®
PRINT D$;"PR#1": PRINT CHR$ (9) ;"G2": PRINT D$;"PR#3":
RETURN
PRINT D$;"PR#1": PRINT CHR$ (9) ;"G2RD": PRINT
D$;"PR#3'": RETURN
REM **%* Bildrahmen x%*%*
BASADR = 16497
FOR J=1T08
FOR I7=9T07
READ AL%
POKE BASADR + 1924 * I7,AL%
NEXT I7
BASADR BASADR + 1
NEXT J
BASADR 16836
FOR I7=9T1T07
READ AL%
POKE BASADR + 1924 * I7,AL%
NEXT I7
RESTORE
BASADR = 16384
FOR I7”=9T0 7
READ AL%
POKE BASADR + 1924 * I7,AL%
NEXT I7
RESTORE
HPLOT 169,9 TO 224,9
RETURN
DATA 9,62,2,2,30,2,2,2: REM F
DATA 0,34,34,34,34,34,34,28: REM U
DATA 9,34,34,38,42,50,34,34: REM N
DATA ®
DATA 9,
DATA 9, ‚8,8,28: REM I
DATA ® ‚34,34,34,28: REM O0
DATA 9 ‚42,50,34,34: REM N
DATA ® 0,8,20,34: REM x
Peeker 6/85
Applesoft-
Mit Hilfe des Assembler-Programms
AS.ERWEITERUNG werden insgesamt 18
neue Befehle in Applesoft implementiert,
die von jedem Basic-Programm aus aufge-
rufen werden können.
Nach dem Eingeben des Assembler-Pro-
gramms speichern Sie dieses bitte unter
dem Namen AS.ERWEITERUNG mit
„BSAVE AS.ERWEITERUNG, A$9378,
1L$288“ auf Diskette ab. Das Programm
kann dann von Applesoft aus mit einem
BRUN jederzeit wieder eingeladen werden
und liegt nach dem Einladen unter den
DOS-Puffern, d.h. von Adresse $95FF ab-
wärts. Es schützt sich nach dem Starten
(durch BRUN oder CALL 38399) selbst
vor Überschreiben durch Stringvariablen
und initialisiert dann den &-Vektor, der von
Applesoft aus aufgerufen wird, sobald der
Interpreter auf das „&“-Zeichen trifft. Die-
ser Vektor steht in den Speicherzellen
$03F5 bis $03F7. In diesen Bereich wird
ein Sprungbefehl zu dem Programm ge-
schrieben, welches die Befehle nach dem
„&“ verarbeitet.
Die Erläuterung der einzelnen
Befehle
& GOTO stellt dem Benutzer die Möglich-
keit zur Verfügung, ein berechnetes GO-
TO durchzuführen. Als Zeilennummer darf
hierfür jeder beliebige numerische Aus-
druck eingesetzt werden. Beispiele
hierzu:
& GOTO 10*xA +25
& GOTO A(X) *# 10 + 50.
& GOSUB bildet einen berechneten
Sprung in ein Unterprogramm. Der Gel-
tungsbereich für den numerischen Aus-
Peeker 6/85
Erweiterungen
4 Applesoft 94
von Markus Enzinger
Eine Sammlung von Ampersand-Routinen
druck ist identisch mit dem des Befehls
„& GOTO*,
& RESTORE hat im Prinzip die gleiche
Wirkung wie der Applesoft-Befehl „RE-
STORE“ mit dem Unterschied, daß der
DATA-Zeiger, der auf die momentan zu
lesende Information gerichtet ist, nicht auf
das erste vorhandene DATA-Statement
zurückgesetzt wird, sondern auf jede be-
liebige DATA-Zeile gerichtet werden kann.
Der numerische Ausdruck für die Zeilen-
nummer muß den gleichen Bedingungen
entsprechen wie der von „& GOTO“,
& HGR bewirkt, daß die erste Seite für
hoch aufgelöste Grafik sichtbar wird, ohne
diese dabei zu löschen. Genauso wie bei
dem „HGR“-Befehl in Applesoft werden
auch hier die untersten vier Zeilen für
Textausgabe reserviert. Dieser Befehl er-
spart das ansonsten notwendige „Herum-
poken“ in den Adressen für die Bildschirm-
ausgabe. „& HGR“ entspricht den folgen-
den Basic-Zeilen:
POKE -16304,0
POKE -16301,0
POKE -16300,0
POKE -16297,0
POKE 230,32,
Außerdem wird in der Zero-Page ein Flag
gesetzt, welches bewirkt, daß alle nachfol-
genden Grafikkommandos wie HPLOT
usw. auf der ersten Grafikseite ausgeführt
werden.
& HGR2 bewirkt dasselbe wie „& HGR“,
bezogen auf die zweite Seite für hoch
aufgelöste Grafik. Allerdings wird hier, wie
auch beim Applesoft-Befehl „HGR2“, kein
Platz für Textausgaben reserviert.
& GR schaltet die Bildschirmausgabe auf
die erste Seite für niedrig aufgelöste Grafik
um, ähnlich wie der Befehl „GR“ in Ap-
plesoft, jedoch ebenfalls ohne diese zu
löschen. Die unteren vier Zeilen sind für
Textausgaben reserviert.
& INVERSE bewirkt ein Invertieren des
Textbildschirmes. Invertieren bedeutet,
daß die Hinter- und Vordergrundfarbe je-
des einzelnen Zeichens gegeneinander
vertauscht werden. Ein zweimaliges An-
wenden dieses Befehls stellt wieder den
Ursprungszustand des Textbildschirmes
her. (Dieser Befehl sollte bei der Benut-
zung eines Peripheriegeräts nicht ange-
sprochen werden, da der gesamte Bereich
von $0400 bis $07FF invertiert wird und
somit auch die von den Slots benutzten
„Screenholes“ ihren Wert ändern. Dies
führt z.B. zu einer Neukalibrierung des
Schreib/Lesekopfs bei einem angeschlos-
senen Diskettenlaufwerk. Anm. der Red.)
& INVERSE-H invertiert die zuletzt ange-
sprochene Seite für hoch aufgelöste Gra-
fik. Man sollte darauf achten, daß vor der
Verwendung dieses Befehls schon eine
der beiden Grafikseiten angesprochen
wurde (durch „HGR“, „HGR2“, „& HGR“
oder „& HGR2“). Der Grund dafür liegt in
der Tatsache, daß in der Zero-Page ein
Flag existiert, welches dem Interpreter
sagt, auf welcher Grafikseite momentan
gearbeitet wird. Ist noch keine Grafikseite
angesprochen worden, so enthält dieses
Flag einen Zufallswert und es könnte pas-
sieren, daß irgendwo im RAM Speicher-
zellen invertiert und dadurch Daten zer-
stört werden oder gar das System ab-
stürzt.
43
nn
& FLASH bewirkt ein Aufblitzen des Text-
bzw. Lores-Grafik-Bildschirmes. Dieser
Befehl ist besonders bei Spielen gut an-
wendbar, wenn sog. „Crashs“ dargestellt
werden sollen. Programmtechnisch wurde
dieser Befehl realisiert, indem einfach die
Invertierungsroutine zweimal hintereinan-
der aufgerufen wird.
& SOUND h,d gibt über den internen
Lautsprecher des Apple Il den Ton h mit
der Dauer d aus. Der Parameter h stellt
also die Tonhöhe dar, d die Tondauer. H =
1 ergibt den tiefstmöglichen, h = 255 den
höchstmöglichen Ton. D = 1 bewirkt einen
sehr kurzen, d = 255 dagegen einen lan-
gen Ton. Für h und d sind sowohl Zahlen
als auch Variablen einsetzbar. Beispiele
hierfür:
SOUND 25,200
SOUND NH,ND + 100.
& SCROLL-R schiebt den gesamten Bild-
schirminhalt der Textseite um eine Spalte
nach rechts. Mit Hilfe des SCROLL-Be-
fehls ließe sich z.B. ein Programm zur
Erzeugung von Laufschriften o.ä. recht
einfach erstellen.
& SCROLL-L schiebt den Bildschirminhalt
um eine Spalte nach links.
& SCROLL-U schiebt den Bildschirmin-
halt um eine Zeile nach oben.
& SCROLL-D schiebt den Bildschirmin-
halt um eine Zeile nach unten.
& SCROLL-GR schiebt den Bildschirmin-
halt der niedrig aufgelösten Grafik um eine
Spalte nach rechts.
& SCROLL-GL schiebt den Bildschirmin-
halt der niedrig aufgelösten Grafik um eine
Spalte nach links.
& SCROLL-GU schiebt den Bildschirmin-
halt der niedrig aufgelösten Grafik um eine
Zeile nach oben.
& SCROLL-GD schiebt den Bildschirmin-
halt der niedrig aufgelösten Grafik um eine
Zeile nach unten.
Die Grafik-SCROLL-Befehle eignen sich
in erster Linie zur Erstellung von Spielpro-
grammen in Basic, wie z.B. Scramble oder
Autorennen, die eine schnelle Bewegung
der Hintergrundlandschaft verlangen. Die
Text-SCROLL-Befehle sowie der IN-
VERSE- und FLASH-Befehl arbeiten nur
bei der 40 Z/Z-Ausgabe.
44
BGE
AS.ERWEITERUNG
9378:
937A:
937D:
937F:
9381:
9383:
9385:
9387:
9Y3Z8A:
938C:
938F:
9399:
9392:
9394:
9397:
9399:
939B:
939E:
93AB:
93A2:
93A5:
93A7:
9349:
93AB:
93
F7
79
74
9%
73
F6
ac
F5
03
03
D3
95
95
95
aaa
18 neue Applesoft-Befehle
von
MARKUS ENZINGER
a
*%kk x x * x
EZ nn 2 2
*
ORG $9378 ; Programm-Startadresse
— Label-Definition ————— —
* Zuordnung der Tokens, d.h. der Zahlen, die der Inter-
* preter für die jeweiligen Befehle verwendet
*
FLASH EQU 159
INVERSE® EQU 158
GOSUB® EQU 176
GOTO® EQU 171
RESTORE® EQU 174
GR® EQU 136
HGR® EQU 145
HGR2® EQU 144
*
* Zero-Page-Adressen ————
%*
WNDWDTH EQU $21
WNDTOP EQU $22
WNDBTM EQU $23
BASL EQU $28
BASZL EQU $2A
LINNUM EQU $59
FRETOP EQU $6F
MEMSIZE EQU $73
CURLIN EQU $75
DATPNT EQU $7D
LOWTR EQU $9B
TXTPTR EQU $B8
HPAG EQU $E6
*
* Verschiedene System-Adressen -—————
*
; Token von FLASH
; Token von INVERSE
; Token von GOSUB
; Token von GOTO
;‚ Token von RESTORE
; Token von GR
; Token von HGR
;‚ Token von HGR2
CHRGET EQU $opBl ; Zeichen holen
SPKR EQU $C939 ; Adresse des Lautsprechers
FNDLIN EQU $D61A ;‚ Zeile suchen
NEWSTT EQU $D7D2 ‚ neuen Befehl ausführen
FRMNUM EQU $DD67 ; Ausdruck berechnen
ERROR EQU $DECY ‚ Ausgabe 'Syntax Error'
GETADR EQU $E752 ; FAC1 —> Integer (in $59,$51)
ILLQUA EQU $E199 ; Ausgabe 'Illegal Quant. Error'
GETNUM EQU $E746 ; Hole 2 Parameter aus Basic
VTABZ EQU $FC24
SCROLLB EQU $FC7®
WAIT EQU $FCA8 ; Warte-Schleife
%*
* Initialisieren des &-Vektors
*
LDA #>START
STA $P3F7
STA FRETOP+1
STA MEMSIZE+1
LDA #<START
STA FRETOP
STA MEMSIZE
STA $03F6
LDA #$4C
STA $93F5
RTS
; High-Byte
; Low-Byte
; Sprungbefehl
*
* War der Befehl ein
*
START CMP #GR®
BNE NEXTCOM
JMP GR
NEXTCOM CMP #HGR®
BNE NEXTCOMl
JMP HGR
NEXTCOMl CMP #HGR29
BNE NEXTCOM2
JMP HGR2
NEXTCOM2 CMP #GOTO®
BEQ GOTO
CMP #GOSUB®
BEQ GOSUB
'GR'?
; Mit GR-Token vergleichen
; GR-Routine aufrufen
Peeker 6/85
93AD:
9ZAF:
93Bl:
93B3:
93B5:
93B7:
93B9:
93BC:
93BE:
95C1:
9303:
9304:
93C6:
9308:
95CB:
95CE:
9501:
93D4:
93D6:
93D9:
93DA:
93DC:
93DE:
93E1:
93E4:
93E7:
93EA:
93ED:
93Fß:
93F3:
93F5:
93F8:
95FA:
93FB:
93FD:
93FE:
9409:
9491:
9403:
9404:
9406:
9497:
9ABA:
940D:
9419:
9413:
9416:
9419:
94AlB:
941D:
9AlF:
9429:
9422:
9424:
9426:
9428:
9429:
9A2B:
garc:
9ARF:
9431:
9433:
9436:
9439:
943B:
943D:
94ASF:
9441:
9443:
9446:
Peeker 6/85
Ad
D9
D®
c8
20
29
ac
29
20
29
29
A5
85
38
EI
85
c9
FO
60
60
AE
SC
9E
77
9F
8B
nf")
F5
DE
d6
03
94
Bl
BE
03
c9
05
03
97
Bl
D1l
Bl
67
52
4l
03
B9
B8
76
75
BO
E7
D2
Bl
67
52
9C
TE
9B
01
TD
Öl
TE
94
95
95
93
9
DD
E7
D9
D3
93
vl)
DD
E7
D6
11)
99
99
F4
11®
111
112
113
114
115
116
117
118
119
129
121
122
123
124
125
126
127
128
129
13
131
132
135
134
135
136
137
138
139
149
141
142
143
144
145
146
147
148
149
159
151
152
153
154
155
156
157
158
159
169
161
162
163
164
165
166
167
168
169
179
i71
172
173
174
CMP
BEQ
CMP
BEQ
CMP
BNE
JMP
«u War B
NEXTCOM3 LDY
NEXTCHAR CMP
BNE
INY
.
* —— Alle 6
”
CPY
BNE
JMP
NEXT JSR
JMP
SOUND? CMP
BEQ
JMP
NEXTC INY
CPY
BNE
JMP
NEXTC1 JSR
JMP
GOTO JSR
JSR
JSR
JMP
GOSUB LDA
JSR
LDA
PHA
LDA
PHA
LDA
PHA
LDA
PHA
LDA
PHA
JSR
JMP
RESTORE JSR
JSR
JSR
JSR
LDA
STA
LDA
SEC
SBC
STA
CMP
BEQ
RTS
OVFLW DEC
RTS
INVERSE JSR
CMP
BNE
JSR
JSR
LDA
STA
NXTLINE LDX
LDY
LDA
JSR
LDY
#+RESTORE®
RESTORE
#INVERSE®
INVERSE
#FLASH®
NEXTCOM3
FLASH
efehl ein 'Scroll'? ——--
#509
SCROLL1,Y
SOUND? ; Befehl <> 'Scroll'
Buchstaben verglichen? ——
+$06
NEXT
SCROLL ; Routine aufrufen
CHRGET
NEXTCHAR
SOUND1,Y
NEXTC
ERROR ;‚ '"Syntax Error'
+$05 ;‚ verglichen?
NEXTC1
SOUND
CHRGET
SOUND?
- GOTO(X)-Routine -—-—-—-
CHRGET
FRMNUM ‚ Ausdruck berechnen
GETADR ;‚ und in Integer umwandeln
$D941 ; GOTO-Routine ansprechen
- GOSUB(X)-Routine ———
#503
$D3D6 ; Stack prüfen
TXTPTR+1 ; CHRGET-Zeiger retten
TXTPTR
CURLIN+1 ; Zeilennr. retten
CURLIN
+$BQ
GOTO
NEWSTT ; Befehl ausführen
RESTORE(X)-Routine —-—
CHRGET
FRMNUM
GETADR
FNDLIN ; Zeile suchen
LOWTR+1 ; Adr. der Zeile
DATPNT+1 ;‚ in Data-Zeiger ablegen
LOWTR
#501
DATPNT
#+$FF
OVFLW
DATPNT+1
Invertierungs-Routine —-
CHRGET
#+$C9 ‚ Inverse-H?
INVTXT
CHRGET
CHRGET
+$09
$01
#509
+$09
$01 ; Berechnung der
$FAll ; Adresse und Maske des
#+#$09 ; Punktes
Applesoft 4
ProDOS-Editor 1.0
Applesoft-Editor
unter ProDOS-Betriebssystem
von U. Stiehl
1984, Diskette und Manual, DM 98,—
ISBN 3-7785-1024-X
Mit diesem neuen Editor — übrigens
der bislang einzige deutsche Pro-
DOS-Editor — wird dem Applesoft-
Programmierer ein Werkzeug zur ef-
fektiven Programmierung unter dem
Betriebssystem ProDOS gegeben,
denn die früheren Editoren sind alle-
samt unter ProDOS nicht mehr lauf-
fähig.
Unter anderem sind folgende Fea-
tures implementiert worden:
Zeilenorientierter Editor mit jedem er-
denklichen Redigierkomfort (Insert,
Delete, Tab, Restore, freie Cursorbe-
wegung in allen vier Richtungen, Einga-
be von Ctrl-Buchstaben in Applesoft-
Zeilen usw.)
Renumber (Zeilen-Umnumerierung)
Xreference (sortierte Variablenliste)
Suchen von Tokens, Strings und Varia-
blen
dezimale und hexadezimale Umrech-
nungen
Ausführung von Monitorbefehlen aus
dem Editor heraus
Listen des Applesoft-Programms in
speicherinterner Form als Hex-Dump
Suchen von Hex-Folgen, Adressen
oder Speicherstellen im gesamten
RAM-Bereich einschließlich der
Language-Card
frei definierbare Tastatur-Macrobefehle
Der Applesoft-Editor liegt in einem
von ProDOS geschützten Bereich
und läßt sich per Tastendruck vor-
übergehend abschalten und ebenso
einfach wieder aktivieren.
Gerätevoraussetzung: Apple Il+, Ile
oder IIc
Hüthig Software Service,
Postfach 10 28 69,
D-6900 Heidelberg
45
a nn
9448:
YAAA:
944C:
94A4E:
944AF:
9451:
9453:
9455:
9457:
9459:
945B:
945C:
945E:
9469:
9462:
9464:
9466:
9468:
9A6A:
946C:
946E:
9479:
9471:
9473:
9475:
9476:
9478:
9479:
9A7TB:
9A7TD:
9ATF:
9482:
9484:
9486:
9488:
948B:
948E:
9491:
9494:
9496:
9498:
94A9B:
949E:
94AAß:
94A2:
9445:
94AAT:
9449:
9AAC:
9AAE:
94BB:
94B2:
94B4:
94B6:
94B8:
94BB:
94BD:
9YABF:
9aCc2:
94C5:
9407:
94C9:
94ACB:
9ACE:
94D9:
94D!:
94D2:
94D4A:
94D5:
94D7:
94D8:
9ADA:
94ADC:
94DE:
46
ze re EEE EEEEEEEEETEEEEEEEEEEEEETEEEEEEETEEEEEREEEEEEEEEEEEEEEEREEEEEEEEEEEREEEEEEEEEEREEEEEEREEEEREREREEEREEEE
Bl
49
91
c8
0)
E6
AS
D®
69
20
20
ac
26
7F
26
28
F5
01
01
E2
Bl
Ssc
sc
28
28
F7
FF
28
#1
94
94
99
94
1)
1)
95
95
95
95
DE
FC
175
176
177
178
179
189
181
182
183
184
185
186
187
188
189
199
191
192
193
194
195
196
197
198
199
209
201
202
203
204
205
206
297
208
209
219
11
212
213
214
215
216
217
218
219
229
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
NXTBYTE
*
INVTXT
LOOP9Y
LOOP8
LOOP13
LOOP11
LOOP19
LOOP2®
LDA
EOR
STA
INY
CPY
BNE
INC
LDA
CMP
BNE
RTS
LDX
STX
LDA
STA
LDY
LDA
CMP
BCC
EOR
STA
DEY
BNE
INC
DEX
BNE
RTS
CMP
BCC
EOR
JMP
CMP
BCC
EOR
JMP
JSR
JSR
JMP
($26) ,Y
#+#57F ; invertieren
($26) ,Y
+$28 ; 1 Zeile fertig?
NXTBYTE
$01 ‚ nächste Zeile
$01
#$C9 ‚ alle Zeilen fertig?
NXTLINE
#504 ‚ Zeiger auf Text-
$02 ; seite initialisieren
+$09
$01
+$09
($1),Y
+$C9
LOOP1®
#509
($1),Y
LOOP8
$92
LOOP9
#+$AQ
LOOP29
+$89
LOOPI1
+$20
LOOP13
+$80
LOOP11
CHRGET
INVTXT
INVTXT
; FLASHen durch
; 2 x invertieren
. Scroll-Routine ———
SCROLL
NIXGR
NOGRAFIK
LOOP31
FEHLER
*
LDA
STA
JSR
JSR
CMP
BNE
JMP
CMP
BNE
JMP
CMP
BEQ
CMP
BEQ
CMP
BNE
JMP
CMP
BNE
JMP
JMP
+$AQ
$FF
CHRGET
CHRGET
#136 ;‚ Scroll-GR?
NIXGR
SCRGR
#'"G ‚ Grafik-Scroll?
NOGRAFIK
SCROLLG
#'"R
RECHTS
#'L
LINKS
+#'U
LOOP31
UP
#'D
FEHLER
DOWN
ERROR
#* —— Rechts-Scrollen -————
* Umgeschriebene Upscroll-
* Routine vom Autostart-Monitor
.
RECHTS
LOOP17
LOOP16
LDA
BPL
STA
JSR
LDY
DEY
DEY
LDA
INY
STA
DEY
BNE
LDA
STA
LDA
WNDBTM
LOOP15
d
VTABZ
WNDWDTH
(BASL),Y
(BASL),Y
LOOP16
$FF
(BASL),Y
$01
DB-MEISTER
Adreß- und Schemabriefprogramm
Der DB-Meister ist ein in Assembler ge-
schriebenes, ungewöhnlich schnelles, un-
kompliziertes und zugleich „narrensicheres“
AdreßB-, Datei- und Schemabriefprogramm.
Technische Daten
— Recordlänge bis zu 230 Zeichen
560 bis 1000 Records pro Datendiskette
Maximal 25 Felder pro Record
Suche nach 3 Indexfeldern
Ausdruck der Dateien als Etiketten, Listen
und Schemabriefe (mit Felder- und Tasta-
tureinschüben an beliebigen Stellen des
Formbriefes)
normal kopierbare Programmdiskette, un-
terteilt in Hauptprogramme und diverse
Hilfsprogramme
einsatzfähig auf Apple Ile, IIc oder Il Plus
mit 2 Drives (1 Drive ebenfalls möglich)
Gesamtpreis 290, (2 Disketten + ge-
drucktes Manual)
U. Stiehl
c/o Dr. A. Hüthig Verlag
Postfach 10 28 69 - 6900 Heidelberg
AS.ERWEITERUNG und ProDOS
Damit die AS.ERWEITERUNG auch unter
ProDOS läuft, wurde das Assemblerpro-
gramm mit ORG $9778 (statt $9378) neu
assembliert, nachdem die HIMEM-Pokes
(MEMSIZ) zu Beginn des Programms
durch die entsprechende Anzahl von
NOPs ersetzt wurden. Diese Neuversion
findet sich unter dem Namen „AS.ERW-
.PRO“ auf der Peeker-Sammeldisk #6
und ist — wenn man von der Verschiebung
um $0400 nach oben absieht — mit der
DOS-Version identisch. Ferner war ein
kurzes Applesoft-Start-Programm namens
„AS.ERW.PROSTART“ erforderlich, das
HIMEM über die sog. GETBUFFER-Routi-
ne ändert. Kopieren Sie also AS.ERW-
‚PRO und AS.ERW.PROSTART von der
DOS-Sammeldisk auf Ihre ProDOS-Disk
(mit Hilfe der CONVERT-Utility) und star-
ten Sie dann die Ampersand-Routinen mit
RUN AS.ERW.PRO
Die Speicherverteilung sieht dann unter
ProDOS wie folgt aus:
$9300: HIMEM
$9300-$96FF: ProDOS-Puffer
$9778-$99FF: AS.ERW.PRO
$9A00: Beginn von BASIC.SYSTEM
Wie man unter ProDOS Assemblerpro-
gramme oberhalb von HIMEM ansiedelt,
wird in einem späteren Peeker-Artikel ge-
zeigt. U. Stiehl
Peeker 6/85
LOOP15 SEC
SBC #$91
SEC
CMP WNDTOP
BPL LOOPI17
JMP CHRGET
——— Links-Scrollen
Umgeschriebene Upscroll-Routine
vom Autostart-Monitor
LINKS DEC WNDWDTH
LDA WNDBTM
BPL LOOP21
LOoOP22 STA 1
JSR VTABZ
LDY #$99
LOOP23 INY
LDA (BASL),Y
DEY
STA (BASL),Y
INY
CPY WNDWDTH
BNE LOOP23
LDA $FF
STA (BASL),Y
LDA $p1
LOOP21 SEC
SBC #$p1
SEC
CMP WNDTOP
BPL LOOP22
JSR CHRGET
INC WNDWDTH
RTS
Down-Scroll
Umgeschriebene Upscroll-Routine
* vom Autostart-Monitor
*
DOWN LDX WNDBTM
DEX
TXA
PHA
JSR VTABZ
LOOP4® LDA BASL
STA BAS2L
LDA BASL+1
STA BAS2L+1
LDY WNDWDTH
DEY
PLA
SEC
SBC #$P1
SEC
CMP WNDTOP
BMI LOOP4l
PHA
JSR VTABZ
LOOP42 LDA (BASL),Y
STA (BAS2L),Y
DEY
BPL LOOP42
BMI LOOP4®
LOOP41 LDY WNDWDTH
DEY
LDA $FF
LOOP45 STA (BASL),Y
DEY
BPL LOOP45
JMP CHRGET
*
* ————- Up-Scroll
%*
UP JSR SCROLL®
JMP CHRGET
; Upscroll
*
* —— Low-Grafik-Scroll --——
*
SCROLLG LDA +#$99
STA $FF
STA WNDTOP
STA WNDBTM
PHA
LDA #29
STA WNDBTM
JSR CHRGET
CMP #'U
Peeker 6/85
95F5: 53
95F8: 4AF
95FB: 53
95FE: 4E
648 Bytes
Applesoft 4.4
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
379
WDWRESTO
SCRGR
OK
REPEAT
REP1
*
* Ablegen von
'Sound' als
*
*
%*
LDA
LDA
LDA
LDA
STA
JMP
UPSCR
NOGRAFIK
+20
WNDTOP
WNDBTM
#509
WNDTOP
$FF
WNDBTM
+29
WNDBTM
RECHTS
WDWRESTO
SCROLL®
CHRGET
+$27
+$09
$05DP,Y
INC
WDWRESTO
CHRGET
GETNUM ; Lese Parameter
LINNUM+1
OK
ILLQUA
$01
$01
LINNUM
+504
WAIT ; Wait-Routine
SPKR ; Lautsprecher
DELAY
REP1l
$01
REPEAT
$c959
$c953
50954
$c056
CHRGET
$FB49
$c959
$c053
$c954
$0057
+$29
HPAG
CHRGET
$c959
$c052
$c955
$0057
+$49
HPAG
CHRGET
'Scroll' und
ASCII-Code zum
späteren Vergleich
SCROLL1 ASC
SOUND1 ASC
'SCROLL'
'SOUND'
47
RAM-Disk-Driver für
3 ascal 1 ® 1 von Michael Schröter
1. Theorie
Eine ausgesprochen nützliche Erweite-
rung für den Apple Ile ist die erweiterte 80-
Zeichenkarte. Eine der vielen neuen Mög-
lichkeiten, den zusätzlichen Speicher aus-
zunutzen, besteht in der Simulation einer
Diskette. Dies ist natürlich vom verwende-
ten Betriebssystem abhängig. Nachdem
eine solche Simulation für DOS 3.3 bereits
veröffentlicht wurde (vgl. (1) sowie Peeker
1/2, 85 und 4/85), soll hier ein entspre-
chendes Konzept für PASCAL 1.1 vorge-
stellt werden. Zunächst einige Vorbemer-
Kungen:
Im Gegensatz zu DOS 3.3 werden Peri-
pheriegeräte (Devices oder Volumes) in
Pascal nicht über Slot und Drive selektiert,
sondern über ihre entsprechende Uhnit-
nummer angesprochen (vgl. (2), S. 26,
276-277). Die Verwaltung übernimmt der
Interpreter, die eigentliche Ausführung
das BIOS (Basic Input Output System).
Schnittstelle zwischen dem p-code (also
dem compilierten Pascal-Programm) und
dem BIOS sind die Unit-Prozeduren des
Interpreters. Da (3) nicht alle verfügbaren
Prozeduren beschreibt, seien sie hier
noch einmal kurz genannt:
UNITBUSY (unitno), UNITWAIT (unitno),
UNITCLEAR (unitno), UNITSTATUS (unit-
no, array, mode);
UNITREAD (unitno, array, length, block,
mode);
UNITWRITE (unitno, array, length, block,
mode).
Bei genauerer Untersuchung stellt man
fest, daß selbst „höhere“ Prozeduren wie
BLOCKREAD und sogar GET, PUT, SEEK,
WRITE usw. ausschließlich über diese
Unit-Prozeduren mit dem BIOS verkeh-
ren. Weiterhin sind nur die 4 letztgenann-
ten Prozeduren unitspezifisch, denn nur
sie werten die Unit-Number auch tatsäch-
lich aus, um die entsprechenden BIOS-
Routinen anzusteuern. Den eigentlichen
Aufruf übernimmt dann die Schnittstelle
zwischen Interpreter und BIOS.
48
Hier werden die einzelnen Devices in ver-
schiedenen Tabellen verwaltet. Die erste
Tabelle ($FE80..$FEAF) enthält die „be-
nutzer-definierbaren Sprungvektoren”.
Der Anwender kann bis zu 16 eigene De-
vices verwalten lassen, die dann den Unit-
nummern 128..143 zugeordnet sind (übri-
gens eine Möglichkeit, über die sich die
Apple-Handbücher ebenfalls ausschwei-
gen). Da das Laufzeitsystem hiervon kei-
nen Gebrauch macht, soll darauf auch
nicht näher eingegangen werden.
Die systemspezifischen Geräte (also die
Units 1..12) werden in einer eigenen Ta-
belle ($FEBO..$FEC7) verwaltet. Für jedes
Device sind dabei 2 Bytes vorgesehen,
wobei bei einem Aufruf folgende Zuord-
nung erfolgt: Ist das High-Byte (also
$FEB1 für Device 1, $FEB3 für Device 2
usw.) der Tabelle = $00, so wird die BIOS-
Routine zur Disk-Verwaltung gerufen. Ist
das High-Byte hingegen = $FF, so liegt
ein Non-blocked-Device vor (also etwa
CONSOLE oder PRINTER), und eine dritte
Tabelle ($EEAD..$EECC) steuert den
BIOS-Aufruf. Alle anderen vorgefundenen
Werte werden als eine „indexed indirect
address“ behandelt, d.h. als Anfangs-
adresse-1 der Handler-Routine. Genau
hier hakt auch das folgende Programm ein.
Noch ein Wort zur Übergabe der Parame-
ter: Wird der Interpreter für eine Disketten-
operation verlassen, so findet das BIOS
die Parameter in folgender Ordnung auf
dem Systemstack (je 2 Bytes mit dem
Low-Byte an oberster Stelle):
Top of Stack:
Blocknummer
Anzahl der zu übertragenen Bytes
Adresse des Arrays
Unitnummer
Modeparameter
Bei Diskettenoperationen ist der Modepa-
rameter immer = $00. Das gleiche gilt für
das High-Byte der Unitnummer.
2. Praxis
Da der 6502 lediglich in der Lage ist, 64K
zu adressieren, muß man beim Verwalten
der zusätzlichen 64K auf die Softswitches
bzw. die Firmware-Routinen AUXMOVE
und XFER zurückgreifen (vgl. (4), S. 71).
Diese beiden Prozeduren übernehmen
auch die Hauptarbeit im Programm. Aller-
dings ist man mit ihnen nur in der Lage,
den Speicherbereich von $0200 bis
$BFFF zu manipulieren. (Anm. d. Red.:
Die gleiche Einschränkung gilt auch für
das in (1) gelistete Programm. Deshalb
soll zu einem späteren Zeitpunkt im
Peeker ein Pascal-RAM-Disk-Driver veröf-
fentlicht werden, der wie die Peeker-RAM-
Disk-Programme für CP/M und DOS 3.3
die 64K voll ausnutzt. Dann muß man al-
lerdngs auf AUXMOVE teilweise ver-
zichten.)
In dem Bereich $0200-$BFFF wird die
RAM-Disk angelegt. Bekanntlich organi-
siert Pascal seine Disketten im Blockfor-
mat (1 Block = 512 Bytes). Ein File wird
dann in zusammenhängenden, hinterein-
anderliegenden Blöcken gespeichert. Bei
einer neu initialisierten Diskette werden
die eigentlichen Files erst ab Block 6 ge-
speichert, weil die Blöcke O und 1 für das
Boot-Programm reserviert sind und die
Blöcke 2, 3, 4 und 5 das Directory der
Diskette enthalten. Die RAM-Disk beginnt
mit Block 2, da die Boot-Blöcke bei einer
RAM-Disk keinen Sinn ergeben. Zu be-
achten ist nun ferner, daß der Bereich
$0400..$07FF für die 80-Zeichendarstel-
lung benutzt wird. Somit beginnt Block 2
bei $0800 und erstreckt sich bis ein-
schließlich $O9FF (was genau 512 Bytes
ausmacht). Es kommt nun nur darauf an,
die Blocknummer in die entsprechende
Anfangsadresse des Hilfsspeichers zu
transformieren. Das besorgt folgende Um-
rechnung:
Adresse (high):= Blocknummer #2 +4
Adresse (low ):= 0
Die maximale Adresse für einen Block ist
$BEO0O. Mit $BE = 190 hat man also als
Peeker 6/85
ae r
höchste Blocknummer: (190-4) / 2 = 93
— ein Gewinn von 91 zusätzlichen Blöcken
— dies sind immerhin 32% einer normalen
Diskette. Schematisch ergibt sich dann
folgender Aufbau für die RAM-Disk:
$C000 RAM-Top
$BEOO Block 93
$BC00 Block 92
USW.
$0A00 Block 3
$0800 Block 2
$0400 Text-Page 1X
$0200 RAM-Disk-Driver
$0000 RAM-Bottom
An das Progamm selbst wurde die Bedin-
gung gestellt, daß es von allen Systemtei-
len aus verfügbar sein sollte, so daß auch
Filer, Compiler usw. zugreifen können. Es
muß daher an einem Platz implementiert
sein, an dem es nicht überschrieben wer-
den kann. Der Interpreter selbst läßt für
derartige Zusätze leider keinen Platz. Der
Laufzeitkeller und die Halde verbieten, das
Programm im Programmstack unterzubrin-
gen. Ein geeignetes „Plätzchen“ findet
sich allein im ungenutzten Bereich der
Workarea des BIOS ab $BF80. Dort läßt
sich aber beim besten Willen kein ganzes
Treiberprogramm unterbringen. Somit
wurde der Treiber, der für Parametertest,
Umrechnung und Datentransfer zuständig
ist, in den Hilfsspeicher „ausquartiert”,
und zwar ab $0200. Im Hauptspeicher ab
$BF80 liegt lediglich ein kurzes Interface,
das alle Vorbereitungen für XFER trifft, den
Treiber über XFER anspringt und schließ-
lich alle Spuren beseitigt.
Ist das Programm erst einmal installiert, so
muß nur noch die vorgenannte Tabelle auf
$BF80 justiert werden, und die RAM-Disk
ist angeschlossen. Die Strukturierung und
den endgültigen Einbau in das Laufzeitsy-
stem übernimmt dann die sonst wenig
nützliche Zap-Funktion des Filers.
3. Programm
Das Programm gliedert sich in drei Teile:
1. Das Pascal-Programm RAMDISK94:
Dieses Host-Programm übernimmt den
Aufruf von INIT und prüft, ob die RAM-
Disk schon initialisiert wurde. Der Hilfs-
speicher wird nur bei Stromabschaltung
gelöscht, so daß der Filer lediglich bei
einem Kaltstart benötigt wird. Die Kon-
stante Device ist die Volume-Nummer der
RAM-Disk. Hier vorgenommene Änderun-
gen müssen sinngemäß auch bei INIT und
INSTALL erfolgen.
Peeker 6/85
2. Das Assembler-Programm INIT:
Dieses Programm umfaßt die Initialisie-
rungsroutine, die den Treiber in den Hilfs-
speicher nach $0200 und das Interface in
den Hauptspeicher nach $BF80 schiebt
und schließlich die Device-Tabelle anpaßt.
Ferner enthält INIT die Interface-Routine
(INFCE) und den Treiber selbst
(MANAGE).
3. Den Exec-File INSTALL:
Es dient der Filer-Steuerung beim Kalt-
start. Man erhält den File folgendermaßen:
Aus der Command-Prompt-Line heraus
wähle man
M(ake exec.
Zu diesem Zeitpunkt müssen alle betroffe-
nen Files verfügbar sein, also insbesonde-
re der Filer selbst. Als Beispiel wird hier
alles auf die Volume-Nummer 4 bezogen.
Dann entwickelt sich folgender Dialog:
New exec name: #4:1NSTALL.TEXT
Terminator = %, change it? N <hier be-
ginnt der Exec-File
F <um den Filer aufzurufen
Z <das Z(ap Kommando
#11 <die installierte Device-Nummer
N <keine Directory-Kopie
94 <Anzahl der Blöcke auf Device #11
(S.O.)
RAMDISK <Device-Name
Y <RAMDISK ist der richtige Name
(Der folgende Dialog dient zur Übertra-
gung einiger häufig gebrauchter Files auf
die neue „Diskette“. Man kann natürlich
auch andere Programme übertragen oder
sie ganz frei lassen)
T <für T(ransfer
+#4:SYSTEM.FILER <z.B. den Filer
#11:$ <zur neuen „Diskette“
#4:SYSTEM.EDITOR <und den Editor
#11:$
Q <das war’s
%% <Ende EXEC File
Damit ist die RAM-Disk verfügbar.
Literatur
(1) Douglas Peterson, RAMDISK64, Nib-
ble Magazine, 9/1984, S. 33.
(2) Apple Computer, Apple Pascal Opera-
ting System Reference Manual.
(3) Apple Computer, Apple
Language Reference Manual.
(4) Apple Computer, Reference Manual for
Ile only.
Pascal
gprscal 4
Peeker-Sammeldisk +6
zu Heft 6/1985, einzeln DM 28,—
im Fortsetzungsbezug DM 20,—
A 024 HELLO
B 114 ASMDIV
B 002 CURSOR1
T 004 T.CURSOR1
B 002 CURSOR2
T 004 T.CURSOR2
B 002 LINIE
T 005 T.LINIE
B 002 VIERECK
T 005 T.VIERECK
B 002 BOX
T 009 T.BOX
002 HINTERGRUND
005 T.HINTERGRUND
002 PAGE.SWAP
004 T.PAGE.SWAP
003 WANDERNDER.STRICH
004 KOMPRESSOR.DEMO
003 KREIS.1
004 KREIS.2
004 KREIS.3
002 FLIPPER
005 T.FLIPPER
002 KOMPRESSOR
012 T.KOMPRESSOR
03 OLYMPIA
21 .T.OLYMPIA
0
0
043 FOURIER.MAIN
019 FOURIER.SYN
020 FOURIER.SPEC
004 AS.ERWEITERUNG
028 T.AS.ERWEITERUNG
003 AS.ERW.PROSTART
004 AS.ERW.PRO
T 017 T.AS.ERW.PRO
B
I
B
1
A
A
A
A
A
B
I
B
T
B
I
A
A
A
B
I
A
B
T 002 INSTALL.PASCAL.SOURCE
T 005 RAMDISK94.PASCAL.
SOURCE
T 032 INIT.PASCAL.SOURCE
A 002 RAMDISK.INIT.DOS
B 002 AUXDRIVER
T 010 T.AUXDRIVER
B 002 MOVEDRIVER
T 004 T.MOVEDRIVER
B 002 RAMDISK.FORMATTER
T 006 T.RAMDISK.FORMATTER
A 002 SOLITAIRE.START
A 029 SOLITAIRE
B 004 SOLITAIRE.B
T 016 T.SOLITAIRE.B
Hüthig Software Service
Postfach 102869 - 6900 Heidelberg
49
RAMDISK94.PASCAL.SOURCE
PROGRAM RAMDISK94;
USES CHAINSTUFF;
CONST
device = 11;
PROCEDURE init; EXTERNAL;
FUNCTION check : boolean;
{check stellt fest, ob RAMDISK schon vorhanden ist}
{Falls true, braucht nicht mehr gezapt zu werden}
VAR
idrec : {idrec ist ein Ausschnitt aus dem}
RECORD {eventuellen Directory-Eintrag}
first : integer;
last : integer;
ftype :6®..8;
vname : string[7]
END;
BEGIN
check := false;
{$1-}
UNITREAD (device,idrec,SIZEOF(idrec),2);
{$I+}
IF IORESULT = ® THEN
WITH idrec DO BEGIN
IF (first=®) AND (last=6) AND (ftype=ß)
AND (vname='RAMDISK') THEN
check := true {RAM-Disk schon initialisiert}
END
END;
BEGIN
SETCHAIN (''); INIT;
IF NOT check THEN
SETCHAIN ( 'EXEC/INSTALL')
END.
INIT.PASCAL.SOURCE
‚ Installationsroutine
Al .EQU 3C
A2 .EQU 3E
A4 .EQU 42
XADR .EQU 3ED
RETURN .EQU ®
XFER .EQU 90314
AUXMOVE .EQU BC311
SLOTCXRD .EQU 8C915
SLOTCXON .EQU dcpd6
SLOTCXOF .EQU 8C097
HIRESOF .EQU dc956
DISKSTAT .EQU ®DCC5 ; Default-Disk-Status-Routine
DSKVCT .EQU SFEAE ;‚ Basisadresse der Unittabelle
.MACRO POP
PLA
STA 71
PLA
STA %l+1
. ENDM
.MACRO PUSH
LDA %1+1
PHA
LDA %1
PHA
. ENDM
50
.PROC INIT
.
——— — ee
’
’
; Die Initialisierungsroutine
.
’
’
BCK
STAT
DEVICE
POP RETURN Platz schaffen
LOAD Al,RETURN+2,8
LDA #9® ; Treiber im
STA A4 ;‚ Hilfsspeicher
LDA #92 ;‚ ab $9200 ablegen
STA A4+l
LDA DRVST
STA Al
LDA DRVST+1
STA Al+l
LDA DRVED
STA A2
LDA DRVED+1
STA A2+1
JSR MVE
LOAD INFCE, ®BF8®,7F
‚ verschieben
Interface nach
; $BF8® schieben.
LDA DEVICE ; Tabelle für
ASL A ; Device #11 justieren
TAY
LDA #7F
STA DSKVCT,Y
INY
LDA #@BF
STA DSKVCT,Y
LOAD RETURN+2,A1l,8
PUSH RETURN
RTS ;‚ und Ende
LDA SLOTCXRD
; Rekonfiguration
; Firmware-Status
STA STAT testen und sicher-
STA SLOTCXOF stellen, daß
SEC ;‚ Firmware zugeschaltet
JSR AUXMOVE : Aut.
LDA STAT ; Firmware-Status wieder
BMI BCK ; herstellen.
STA SLOTCXON
RTS
.BYTE
.„BYTE 11. ; kann geändert werden
’
’
;‚ Das Interface Programm zur Treibersteuerung
’
; X- Register enthält Operationsparameter:
DEFSTAT
UNITREAD
UNITWRITE
UNITCLEAR
UNITSTATUS
CPX #2 ; keine Aktivität bei
BNE DEFSTAT ; UNITCLEAR
LDX #99
RTS
CPX
BNE
JMP
STA
POP
LDA
#5
BEGIN
DISKSTAT
HIRESOF
RETURN
XADR
‚ Stack leeren durch
; Default-UNITSTATUS
; Wichtig: Abschalten, um
; Überschreibungen zu verhindern
‚ alte Werte sichern
STA RETURN+1B.
LDA XADR+1
STA RETURN+11.
LDA #99
STA XADR
LDA #92
STA XADR+1
: $0200 ist Treiberstart
LDA SLOTCXRD s.o., Firmware muß zugeschaltet
STA RETURN+12. ; sein
STA SLOTCXOF
CLV
Peeker 6/85
; JSR wird verwendet, um die
; Return-Adresse zu sichern
LDA RETURN+12. ; <- Return-Punkt ist hier
BMI DONE
STA SLOTCXON ;‚ Firmware wieder herstellen
LDA RETURN+1®. . .
STA XADR ; die alten Werte wieder einsetze ; UNITREAD simulieren
LDA RETURN+11.
STA XADR+1
PUSH RETURN
RTS ; zurück zum Hauptprogramm
; Es folgt das Treiber Programm.
; Zuoberst auf dem Stack liegt die
; Return-Adresse-l
STA
CLC ; C=® für Aux-Main-Transfer
DISCARD PLA ; Unitnummer und
PLA
PLA ; Modeparameter vergessen
PLA
.WORD DRVST+2
MANAGE CGLE ; Return-Adresse fixieren
PLA ; und Workarea freimachen PHP
ADC #01
STA XADR LDA A2
n +00 BNE EXEC ;‚ ausgleichen
DEC A2+1
;‚ End-Adresse von Source
STA XADR+1
LOAD Al,RETURN+2,8 Ei ar
PLA ; Blocknummer holen JSR AUXMOVE
TAY
PLA
CPY : ; Block >= 94 (dez)
BCS ; oder < 2 ist unzulässig PLA
CPY
BCC PLA
. PLA ;‚ Stack leeren und
TYA ; Umrechnung auf Speicheradresse PLA : wit Poshlerindikater
n_ PLA 'No room on volume'
PLA ; zurück
ADC PLA
TAY PLA
TXA ; verzweigen zur entsprechenden LDX +8
BEQ ; Operation
; Ausführung und
LDX #9 ; Rückkehr ohne Fehler
BEQ BACK
Im Falle eines Fehlers:
STY ; UNITWRITE simulieren LOAD RETURN+2, Al,8 alte Werte wieder
CLC ‚ einsetzen und zurück
LDA
STA CLV : zum Interface
JMP XFER
PLA RER Ur ENEREGUCR-ENGEES TE DISS SEHE DEENENEOEUEPSTEIEREBESNE:
STA
PLA DRVED .WORD DRVED-1
STA
GLE . END
er = INSTALL.PASCAL.SOURCE
ADC A2 ZFZ#11
STA A2 N94
PLA RAMDSIISK
Al+1 YT#4:SYSTEM.FILER
A2+1 #11:$
A2+1 T#4:SYSTEM.EDITOR
;: C=1 für Main-Aux-Transfer #+11:$
DISCARD 0%%%%
Inserentenverzeichnis peeker 6/85
Seite
Entwicklungsbüro Brecht, Fellbach-Schmiden . . . . . 17 Intus, Waldshut-Tiengen . . . 2 2 2 2 2 2 220.0. 32
Bühler Elektronik, Baden-Baden . . . 2 2 2.2.2.2..68 Klaus Jeschke, Kelkheim. . . ». » 2 2 222 220..8
ccp datentechnik, Hamburg . . . . Fa: . E.-W. Meyer, Frohnhausen . . . . 2 2 2 2 2 2.2..8
Computerladen Memmingen, Memmingen . 71 Micromint Computer GmbH, Erkralh. : = © = x 2-3
copy-team gmbh, Erlagen 19 Ulf Mohwinkel Electronic, Leverkusen . . . 2 ..2..2...17
D.O.S. Computersysteme, Schwäbisch Hal u : ; sera en sr a a a BE Be a SE ae SE Be
pandasoft, Berlin . . . Fe a a Va Ge >.
Erbrecht Computer Related Products, Hamburg . . . . 10 r + r electronic, Heidelberg . 35
erphi electronic GmbH, Großhelfendorff . . . . . . A US Schappach Computer, Mannheim. . 2 2 2.2.2.2..2..32
hib Computerladen, Nürnberg . . . » 2 2.2.2.2..2..19 Tewi Verlag, München . . . 22 2.2.2.2..2...383 US
IBS Computertechnik, Bielefeld . . . . 2 2... 2 US Tombstone-Micro, Berlin . . . . 2 2 2 2 222... 735
Interkom Electronic, ISsenhagen . . . . 2 2.2.2..2.76 Ueding electronics, Menden. . . . . 2 22.2.2... 715
Peeker 6/85 51
ProDOS
Theorie und Praxis
von Ulrich Stiehl
Im Peeker können wir aus Platz-
gründen nicht alle Feinheiten des
komplizierten Betriebssystems
ProDOS darstellen. Deshalb er-
scheinen im Hüthig-Verlag in eini-
gen Wochen zwei neue ProDOS-
Bücher, das eine mehr theoreti-
sche Werk von Arne Schäpers, das
andere mehr praktische Buch von
mir selbst. Hierzu sind einige
grundsätzliche Anmerkungen er-
forderlich.
ProDOS für Aufsteiger, Band 2
von U. Stiehl, Juni 1985, ca. 180
Seiten, DM 28,-
(Begleitdiskette gesondert erhält-
lich, ebenfalls DM 28,-)
Im Gegensatz zu DOS 3.3 hat die
Firma Apple bei ProDOS eine neue
Politik eingeschlagen. Um einer-
seits die Besitzer von Nachbauten
(einsichtig!) und andererseits die
Produzenten von Fremdlaufwer-
ken (weniger einsichtig!) von der
Benutzung von ProDOS auszu-
schließen, erscheinen in fast regel-
mäßigen Abständen neue Pro-
DOS-Versionen. Dies war zu dem
Zeitpunkt, als ich den ersten Band
von „ProDOS für Aufsteiger“ ver-
faßte (Mai 1984), noch nicht abzu-
sehen. Ursprünglich sollte der
zweite Band neben einer Einfüh-
rung in die Applesoft-Programmie-
rung unter ProDOS eine Fülle von
Tips und Tricks enthalten, um bei-
spielsweise fremde Laufwerke auf
ProDOS anzupassen usw. Neben
den Urversionen für Entwickler
sind jedoch inzwischen minde-
stens 4 Versionen aufgetaucht,
nämlich ProDOS 1.0.1, 1.0.2, 1.1
und 1.1.1, und weitere Versionen
werden mit Sicherheit folgen. Pro-
gramme, die ProDOS an absoluten
Adressen patchen, wie beispiels-
weise das FORMAT.LC-Programm
im Peeker, Heft 5/85, sind damit
versionsabhängig und in keinem
Fall portabel. Selbst bei Diversi-
DOS und anderen DOS-3.3-Va-
rianten konnte man sich darauf
verlassen, daß sich grundlegende
Systemroutinen wie die RWTS im-
mer an derselben Stelle befanden.
Begann beispielsweise der Pro-
DOS-Disk-Driver bis zur Version
1.0.2 noch bei $F800, wie auch im
52
„ProDOS Technical Reference
Manual“ der Firma Apple angege-
ben, so beginnt er bei der Version
1.1.1 jetzt bei $D000. Aufgrund
dieser geänderten Sachlage habe
ich für den zweiten Band von „Pro-
DOS für Aufsteiger“ alle Program-
me so „seriös“ geschrieben, daß
sie grundsätzlich auf allen bisheri-
gen und möglicherweise auch auf
allen zukünftigen Versionen laufen,
es sei denn, daß die MLI-Schnitt-
stelle und die Dateistrukturen als
solche radikal geändert werden.
Der zweite Band beginnt mit einer
bewußt leichtverständlichen Ein-
führung in das BASIC.SYSTEM für
Applesoft-Programmierer. Danach
werden vermischte Tips und Tricks
gegeben, soweit sie unter dem
BASIC.SYSTEM noch zulässig
sind, z.B. zu den Problemen Hires-
Grafik und FRE-Befehl, INPUT bei
Strings mit Kommas und Doppel-
punkten, Speichern von Zahlen-
Arrays als Binärfiles, Simulation
des fehlenden MON-Befehls usw.
Sodann folgt eine umfangreiche
Sammlung von überwiegend in
Assembler geschriebenen, sofort
einsatzfähigen Hilfsprogrammen:
— Dateileseprogramme zum Einle-
sen von Dateien beliebiger Größe
zwecks Ausgabe als ASCII- oder
Hexdump auf dem Bildschirm bzw.
Drucker.
— Diskettenkopierprogramme für
1-Drive- und 2-Drive-Besitzer
(analog zu COPYA,).
— Dateikopierprogramme analog zu
FID. Das eine der beiden Program-
me ist fast ausschließlich in Ap-
plesoft geschrieben, um die Lei-
stungsfähigkeit der BASIC.SY-
STEM-Befehle zu veranschauli-
chen.
— Konvertierungsprogramm für die
Richtung DOS 3.3 nach ProDOS.
— Ferner Diskettenvergleichspro-
gramm, Formatierungsprogramm
(versionsunabhängig!), Bad-
Block-Routine u.a.
Die ProDOS-Analyse
von A. Schäpers, Juli 1985, ca.
450 Seiten, ca. DM 54,-
Auch wenn Arne Schäpers jetzt rot
wird, muß es einmal an dieser Stel-
le gesagt werden: Sein Buch ist
die umfangreichste und detaillier-
teste Darstellung, die jemals ein
Apple-Betriebssystem erfahren
hat. In der nunmehr zur Neige ge-
henden DOS-3.3-Ara war „Be-
neath Apple DOS“ von D. Worth
und P. Lechner die „Bibel“ für alle,
die wissen wollten, was DOS 3.3
zum „Ticken“ bringt. Den Nachfol-
geband „Beneath Apple ProDOS“,
der im Sommer 1984 erschien,
empfand ich persönlich als eine
herbe Enttäuschung, weil dort im
wesentlichen nur das repetiert
wurde, was bereits im „ProDOS
Technical Reference Manual“
stand. Wer deshalb die teilweise
„verqueren Innereien“ von Pro-
DOS bis zum letzten Byte — um
nicht zu sagen Bit — kennenlernen
möchte, der sollte sich diese volu-
minöse Werk von Arne Schäpers
zulegen, welches das komplette
Betriebssystem (Urlader, MLI,
Disk-Driver, RAM-Disk-Driver und
Thunderclock-Routine) — mit Aus-
nahme des BASIC.SYSTEMSs, das
zu einem späteren Zeitpunkt ge-
sondert behandelt wird — mit um-
fangreichen Kommentaren und
Übersichtstabellen disassembliert.
Während der zweite Band von
„ProDOS für Aufsteiger“ fertige
Utilities enthält, die man auch dann
anwenden kann, wenn man über
keine Assemblerkenntnisse ver-
fügt, wendet sich die „ProDOS-
Analyse“ an den reinen Assem-
blerprogrammierer, dem sich je-
doch gerade wegen der minutiö-
sen theoretischen Sezierung von
ProDOS völlig neue programmier-
praktische Perspektiven eröffnen.
Durch die parallele Darstellung al-
ler bisher vorliegenden Versionen
— insbesondere 1.0.2 und 1.1.1 —
ergeben sich zudem interessante
Einsichten in den „Programmier-
stil“ der Firma Apple. Ferner kön-
nen Programmierer, die ProDOS
versionsabhängig patchen möch-
ten, hier genau überblicken, wo
gepatcht werden muß, damit dies
keine negativen Konsequenzen
hat.
Daß auch das BASIC.SYSTEM von
uns genauer unter die Lupe ge-
nommen werden muß und wird,
zeigt das nachfolgende Beispiel-
programm. Wenn man es — nach-
dem man es unbedingt zuvor auf
Diskette gespeichert hat! — dreimal
startet, und zwar mit
RUN
RUN 130
RUN 140
stellt man beim dritten Durchlauf
fest, daß es sich selbst zerstört hat.
Dieser Bug wurde in einem Leser-
brief an die amerikanische „Nib-
ble“ erwähnt, doch wurde dort kei-
ne Lösung des Problems angebo-
ten und im übrigen gemutmaßt,
daß der Bug nur dann auftritt, wenn
das Applesoft-Programm weniger
als 1 Block (= 512 Bytes) lang ist.
Dies ist jedoch nicht der Fall. Viel-
mehr tritt die Programmzerstörung
exakt dann auf, wenn unmittelbar
nach dem LOAD oder RUN eines
Applesoft-Programms von Disket-
te eine sequentielle Textdatei mit
OPEN - READ Feld-Nummer grö-
Ber O eröffnet wird. Danach wird
dieses Feld und nur dieses ab
$0801 (Programmanfang) im Spei-
cher abgelegt, und zwar als Zei-
chenkette plus Return mit Bit 7 off
(gilt auch für Zahlen). Daß man in
Betriebssystemen immer wieder
den einen oder anderen Bug fin-
det, ist nichts Neues, daß jedoch
Betriebssysteme auch Programme
zerstören, war mir bislang unbe-
kannt. Ab der BASIC.SYSTEM
Version 1.1, die zu PRODOS 1.1.1
vom Herbst 1984 gehört, ist dieser
Bug beseitigt. Doch wer bekommt
schon diese Version? Als ich in
diesem Jahr für die Peeker-Redak-
tion einen Apple IIc erwarb, befand
sich auf der Systemdiskette („Sy-
stem-Dienstprogramme“) noch
die Version 1.0.2, und die Diskette
„Einführung in BASIC“ enthält so-
gar noch die Version PRODOS
1.0! Sollte also die gekaufte Ver-
sion nur dazu gedacht sein, daß
man angeregt wird, zusätzlich die
(hoffentlich dann weitgehend) feh-
lerfreie Version zu kaufen?
100 REM FIELD.BUG:F >O
110 POKE 768,2
120 PRINT CHR$ (4) "OPEN
XXX“: PRINT CHR$ (4)
“WRITE XXX": FORX = 1T0O
10: PRINT X: NEXT : PRINT
CHR$ (4) “CLOSE“: GOTO
150
PRINT CHR$ (4) "OPEN
XXX“: PRINT CHR$ (4)
“READ XXX“: PRINT CHR$
(4) “CLOSE“: REM Trick-
Zeile
PRINT CHR$ (4) "OPEN
XXX“: PRINT CHR$ (4)
“READ XXX,F"1: INPUT X:
PRINT CHR$ (4) "CLOSE“
LIST
IF PEEK (768) = 2 THEN
POKE 768,1: PRINT : PRINT
“Jetzt RUN 130 tippen“:
PRINT CHR$ (4) "LOAD
FIELD.BUG“
IF PEEK (768) = 1 THEN
POKE 768,0: PRINT : PRINT
“Jetzt RUN 140 tippen“:
PRINT CHR$ (4) "LOAD
FIELD.BUS”
REM Ohne Trick-Zeile wird
Applesoft-Programm zerstört!
REM Gilt für ProDOS-BASIC-
‚SYSTEM bis Version 1.0.2
130
140
150
160
170
180
190
Peeker 6/85
» peeker- Börse
Verkaufe neuwertigen Typenrad-
drucker mit Apple-Interface.
Preis auf Anfrage. Tel. 007
2 Produkt-Karte
Neu im Angebot: Professionelle,
separate Tastatur für Apple Il
plus 16 Funktionstasten und sepa-
ratem Ziffernblock.
Fa. Keyboard & Co.
a Info -Karte
| MAGAZIN FÜR APPLE-COMPUTER
AUFTRAG FÜR KLEINANZEIGEN
Bitte veröffentlichen Sie in der nächsterreichbaren Ausgabe nachstehenden
Text unter folgender Rubrik:
[] suche Hardware [] suche Software [] Tausch U] Verschiedenes
[] biete Hardware [] biete Software [] Kontakte U Chiffre
Bitte jeweils 32 Buchstaben pro Zeile-einschließlich Satzzeichen und Wort-
zwischenräume. Bitte Absender nicht vergessen.
Chiffregebühr DM 6,— zuzügl. MwSt.
MAGAZIN FÜR APPLE-COMPUTER
Zu der in »peeker«, Heft_____, Seite ______ erschienenen
[| Anzeige [| Produktbesprechung
über
bitte ich um detaillierte Information.
Ich wünsche [| Prospekt, Datenblatt [| Preisliste [|] schriftliches Angebot [| tel. Rückruf
Produkt und Bestellnummer
gebe ich neben-
stehende Bestellung
unter Anerkennung
Ihrer in der Anzeige
genannten Liefer- und
Zahlungsbedingungen
auf.
Unterschrift (für Jugendliche unter 18 Jahren der Erziehungsberechtigte)
MAGAZIN FÜR APPLE-COMPUTER
Schreiben Sie uns, wenn Sie Fragen, Ergänzungen oder Anregungen zu
Aufsätzen in »peeker« haben:
» a t ANTWORTKARTE
©. Bere rn
Straße
peeker-Börse
Anzeigen-Service
Dr. Alfred Hüthig Verlag
Postfach 102869
6900 Heidelberg 1
Bitte w veröffentlichen Sie den um-
ulm stehenden Text von Zeilen
Ar ____ DM in der nächsterreich-
n Ausgabe von »peeker«
Unterschrift
Karte bitte vollständig ausfüllen
9
u Vorname, Name
&
POSTKARTE
Firma
Straße
Telefon mit Vorwahl =
‚1 Anschrift der Firma angeben, bei der Sie PLZ/Ort
bestellen bzw. von der Sie Informationen
wünschen
( Karte bitte vollständig ausfüllen
2 um POSTKARTE
O Vorname, Name
= Firma
eo) eeker
in ._
m Redaktion
BER Straße
Postfach 10 2869
PLZ/Ort | 6900 Heidelberg 1
Telefon mit Vorwahl
EEEER
Produkt-
Karte
Wünschen Sie
weitere Informationen
zu einem der im Heft
vorgestellten
Produkte ?
Nichts einfacher als
das.
Produkt-Karte aus-
füllen, mit 60-Pfennig
frankieren und
absenden.
Vorher aber nicht
vergessen:
kreuzen Sie an,
welchen Informations-
wunsch Sie haben.
Damit erleichtern Sie
dem Hersteller
eine gezielte Beant-
wortung Ihrer Anfrage.
Zum Schluß tragen
Sie auf der Rück-
seite die genaue
Anschrift des
Inserenten/Herstellers
und Ihre vollständige
Firmenanschrift ein.
pt MAGAZIN FÜR APPLE-COMPUTER
Apple-CP/M
Mit einem RAM-Disk-Driver für die 64K-Karte
von Karl-Walter Bott
rg
= Pa 7, AR En
7 .. FE ie,
ze Yai W
“- f
er) “Tr?
ee fi:
yZ ef"
„Hllur
DR" hi ’
Y Fi AR
DET,
HL: z 14
d J Fat
De nl
DIRT TTEITITTL. f j
m.
Ds
u
MU;
KerH, »
00 DER
RR
7 7 ; SS (m
AUT
AO
Peeker 6/85
LIE, EN \ a
N U / IWW TE, S, “
U, 7 HL dd , NZ
Das Betriebssystem CP/M (Control Pro-
gram for Microcomputer) ist immer noch
eines der weitestverbreiteten Betriebssy-
steme, obwohl mit dem Einstieg in die 16-
Bit-Mikroprozessortechnik eine Reihe von
neuen Betriebssystemen wie UNIX oder
MS-DOS entwickelt worden sind, die we-
sentlich leistungsfähiger sind als das auf
den Apple-Il-Computern verfügbare CP/
M. Die Hauptgründe hierfür sind ein gro-
Bes Software-Angebot und der relativ ge-
ringe Preis für ein professionelles Be-
triebssystem.
Die Geschichte von CP/M begann 1978
zu einer Zeit, als verschiedene Geräteher-
steller eigene Betriebssysteme entwickel-
ten, die aber geheim und dem Benutzer
nicht zugänglich waren. Die vorhandene
Software war nicht portabel.
Mit dem Erscheinen von CP/M änderte
sich das schlagartig.
Die Urversion von CP/M wurde für Mikro-
computer entwickelt, die mit einem 8-Bit-
Mikroprozessor vom Typ 8080 ausgestat-
tet waren. Die Besonderheit des Betriebs-
systems besteht darin, daß nur ein Teil
hardware-abhängig ist und der Benutzer
eine genau definierte Schnittstelle zwi-
schen hardware-abhängigem und -unab-
hängigem Teil vorfindet.
95
1. Aufbau des Betriebssystems
CP/M
CP/M besteht im wesentlichen aus fünf
Modulen:
a) Page 0
Die Page O (0000H-OOFFH) ist ausschließ-
lich für CP/M reserviert und enthält wichti-
ge Code- und Datensegmente. (Hinweis:
Hexadezimale Adressen werden im fol-
genden für CP/M bzw. Z80 mit nachge-
steltem „H“ und für 6502 mit vorange-
stelltem „$“ gekennzeichnet.)
b) TPA (Transient Program Area)
Sie beginnt in der Seite 1 ab O100H. Alle
Anwenderprogramme werden ab dieser
Adresse von Diskette in den Hauptspei-
cher geladen und an der Adresse 0100H
gestartet.
c) CCP (Console Command Processor)
Dies ist die eigentliche Schnittstelle zum
Benutzer. Hier werden alle über die Tasta-
tur eingegebenen Zeichen und Befehle
verarbeitet und interpretiert. Die Adresse,
ab der der CCP in den Speicher gebracht
wird, hängt von der Größe des verfügba-
ren Gesamtspeicherraums ab.
d) BDOS (Basic Disk Operating
System)
Das BDOS verwaltet alle angeschlosse-
nen Diskettenlaufwerke und ist für sämtli-
che Ein- und Ausgabe-Operationen zu-
ständig. Dem Benutzer wird hier eine Rei-
he von Grundfunktionen zur Verfügung
gestellt, z.B. Laufwerk auswählen, Datei
öffnen oder Zeichen von der Konsole le-
sen. Das BDOS ist ebenfalls völlig von der
Hardware unabhängig und bildet mit dem
CCP die Basis des Betriebssystems. Das
BDOS wird ab Adresse CCP + 0800H in
den Hauptspeicher geladen.
e) BIOS (Basic Input Output System)
Das BIOS ist der einzige hardware-abhän-
gige Teil des Betriebssystems und führt
alle Ein- und Ausgabe-Funktionen aus,
z.B. Daten auf Drucker, Terminal oder Dis-
kette bringen. Das BIOS wird ab Adresse
CCP + 1600H in den Speicher geladen.
2. Apple II und CP/M
Die Computer der Apple-Il-Serie sind in
ihrer Grundausstattung nicht CP/M-fähig:
Der Apple besitzt keinen Mikroprozessor
vom Typ 8080 oder Z80. Weiterhin wird
kein RAM-Bereich ab Adresse 0100H zur
Verfügung gestellt, der durchgehend dem
56
Bild 1
B000H-ÖFFFH
1000H-1FFFH
2000H-2FFFH
300®H-3FFFH
ABOB®H-AFFFH
5000H-5FFFH
T000H-7FFFH
8PB0H-SFFFH
9000H-9YFFFH
ABPBPH-AFFFH
BOßG®H-BFFFH
COD®H-CFFFH
DOPBH-DFFFH
EOP߮H-EFFFH
FOOBH-FFFFH
1000-$1FFF
2000-$2FFF
3000-$3FFF
ad00-$AFFF
5000-$5FFF
6000-$6FFF
8000-$8FFF
9099-$IFFF
ABDB-$AFFF
BOBB-$BFFF
DO00-$DFFF: Bank 2 der LC
E000-$EFFF: Bank 2 der LC
FO00-$FFFF: Bank 2 der LC
CO0B-$CFFF
a | Be | Be | a | De | De | De Be | Be | ee VB BE Eu
Bild 2
Funktion
BOOT
$01 WBOOT
$92 CONST
$93 CONIN
594 CONOUT
$05 LIST
$06 PUNCH
$97 READER
$08 HOME
$99 SELDSK
$DA SETTRK
$0B SETSEC
$oC SETDMA
$OD READ
$0E WRITE
$OF LISTST
$19 SECTRAN
Kaltstart
Warnmstart
Konsolstatus
Konsoleingabe
Konsolausgabe
Druckerausgabe
Stanzerausgabe
Leserausgabe
Auswahl der Spur
Auswahl des Sektors
DMA-Adresse setzen
Druckerstatus
Quelle: c't 1984, Heft 9, S. 82
Benutzer zur Verfügung steht, da z.B. ab
Adresse $0400-$07FF der Bildschirm-
speicher angesprochen wird und der Be-
‘reich ab $C000-$CFFF ebenfalls tabu ist,
da über diese Adressen die wichtigen
Softswitches aktiviert werden und AdreßB-
bereiche für Speicher auf Zusatzkarten in
den Slots 1-7 reserviert sind.
Abhilfe schafft hier die Z80-Karte. Ge-
meint ist damit die „normale“ Z80-Karte,
die keinen Zusatzspeicher und keinen ei-
genen Systemtakt besitzt. Sie ermöglicht
den Betrieb von CP/M 2.2; CP/M 3.0 ist
nicht ablauffähig. Sie erfüllt im wesentli-
chen zwei Aufgaben.
Zum einen wird eine Umkodierung der
Adressen vorgenommen, so daß ein
durchgehender RAM-Bereich ab Adresse
0000H-DFFFH zur Verfügung steht (Bild
1). Der wichtige Softswitchbereich ab
$C000 kann unter CP/M mit den Adressen
ab EOOOH angesprochen werden. Das be-
nötigte RAM stellt die Language-Card
Bank 2 bereit. Zum anderen wird der be-
nötigte Mikroprozessor zur Verfügung ge-
stellt.
D000-$@FFF: Zeropage, Stack, Bildschirm
Diskettenlesekopf in ®,®-Position
Auswahl des Laufwerks
Lesen eines Track/Sectors
Schreiben eines Track/Sectors
Übersetzung logisch. /physik.Sektor
Eine Besonderheit des Apple-CP/M-Sy-
stems ist die Zusammenarbeit des Z80 mit
dem 6502, der als Slave-Prozessor dient,
da über ihn alle Ein- und Ausgabe-Opera-
tionen abgewickelt werden, die auf der
Maschinenebene ablaufen.
3. Die Zusammenarbeit zwischen
Z80 und 6502 unter CP/M
Bild 2 zeigt das Programm, welches die
eigentliche Schnittstelle zwischen Z80
und 6502 darstellt und von der CP/M-
Diskette bei einem Kaltstart ab Adresse
$03C0 (F3COH) in den Speicher gebracht
wird. Wichtig ist noch die Speicherstelle
$03DE. Sie enthält das höherwertige Byte
der Slotadresse, in der die Z80-Karte in-
stalliert ist z.B. E4H für Slot 4. Diese Spei-
cherstelle und der entsprechende Ope-
rand des STA-Befehls ab Adresse $03C6
werden bei jedem Kaltstart initialisiert.
Daraus ergibt sich folgende prinzipielle
Vorgehensweise bei der Aktivierung des
6502-Prozessors, wenn der Z80 aktiv ist:
Peeker 6/85
Zunächst muß die Adresse festgelegt wer-
den, an dem der 6502 sein Unterpro-
gramm ausführen soll. Dies geschieht da-
durch, daß die gewünschte Adresse in die
Speicherstellen $03D0, $03D1 geschrie-
ben wird. Von Bedeutung ist auch hier die
beschriebene Umkodierung der Adressen.
Angenommen, wir wollen eine 6502-Rou-
tine aus dem Apple-ROM aufrufen, z.B.
PRERR mit der Adresse $FF2D, so kön-
nen wir das mit folgender Z80-Befehlsse-
quenz erreichen:
LD HL,OFF2DH
LD (OF3DO),HL
LD HL,(OF3DEH)
LD (HL),A
Der erste Befehl lädt das HL-Register mit
der Adresse des 6502-Unterprogramms,
der zweite schreibt die 16-Bit-Adresse in
die Speicherstellen $03D0, $03D1. Von
Bedeutung ist hier, daß die Z80-Adresse
F3DOH als Zieladresse angegeben wird,
da sie der Adresse $03D0, $03D1 ent-
spricht, wenn der 6502 aktiv ist (Bild 1).
Der dritte Befehl holt die Adresse des
Slots, in dem die Z80-Karte installiert ist.
Auch hier ist die Umkodierung der Adres-
sen zu berücksichtigen.
Der Befehl lädt den Z80-Akkumulator in
die Slotadresse. Es kommt hierbei nur dar-
auf an, daß die Slotadresse auf dem
Adreßbus des Z80 anliegt und in die ange-
gebene Adresse geschrieben wird. Wel-
che Daten anliegen, ist unerheblich analog
zu dem Betätigen eines Softswitches un-
ter Kontrolle des 6502 (z.B. STA $C000).
Der Z80 wird dadurch angehalten und der
Adreß- und Datenbus für den 6502 freige-
geben. Dessen Programmzähler wird mit
der Adresse $03C9 geladen, so daß er
seine Arbeit an der Adresse $03C9 auf-
nimmt.
An dieser Stelle werden in bekannter Wei-
se zunächst das Apple-ROM lesefähig ge-
macht und die CPU-Register geladen. Mit
dem Befehl JSR $xxxx ab Adresse $O3CF
wird das eigentliche 6502-Unterprogramm
aufgerufen. Die Adresse $xxxx ist vorher
vom Z80 definiert worden. Nach der Rück-
kehr wird das ROM auf jeden Fall wieder
lesefähig gemacht und die 6502-Register
werden gerettet.
Mit dem Sprung nach $03C0 wird die
Rückkehr zum Z80 eingeleitet: Language-
Card Bank 2 schreib- und lesefähig ma-
chen und mit „STA $CnO00“ den Z80 ak-
tivieren. Der Z80 setzt die Arbeit mit dem
nächsten Befehl nach „LD (HL),A“ fort.
Stackpointer und sämtliche Registerinhal-
te werden nicht verändert.
Peeker 6/85
SWITCHDEMO.HEX
: 100 100003E003224Fß212E117D3245Fß7C3247Fß42
: 10011000213 ADB22DPF32ADEF3773EB3CD22P1C35E
: 100120000000305782822A01BW16005F19EY5A38N3
:10013000302D36353032295357495443482D4445ED
:B3ß 14BWPADAFBN2DHDDDDDDHDDDDDDDDDDDDDDDNNN
SWITCHDEMO
; ak SWITCHDEMO xxx
d100 ORG ®1PPH
OF®ATH
OF®4A5H
®DB3AH
OF®24AH
OF3D®H
OF3DEH
YREG
AREG
STROUT
HCURS
VEC
CPU
FO47
F045
DBS3A
F®24
F3D®
F3DE
EQU
EQU
EQU
EQU
EQU
ee u u |
DODMSH
PODHOH
CONIN
WBOOT
0093
nu)
EQU
EQU
MVI
STA
A,®
HCURS
D199
0192
3EQ®
3224FQ
LXI
MOV
STA
MOV
STA
LX1
SHLD VEC
LHLD CPU
MOV M,A
D105 212EIl
B108 7D
0109 3245Fd
D1DC 7C
B1BD 3247F®
D11® 213ADB
B113 22DPF3
B116 ZADEF3
B119 77
A,L
AREG
A,H
YREG
D11A
dllc
Öl1F
3E03
CD2201
c3d09P
CALL BIOS
JMP WBOOT
H,STRING+19®®H
H,STROUT
MVI A,CONIN
‚String Output
;:Horizontaler Cursor
;HTAB = ®
‚Adresse des Strings
‚LSB --> A-Reg. 6592
;MSB --> Y-Reg. 65%2
;Up-Adresse übergeben
‚Slotadr. holen
:6502 aktivieren
‚FKT-Nr. für CONIN
‚durch BIOS ausführen
; Einsprungadresse der BIOS-Funktion berechnen und
; Funktion ausführen
DCR A
MOV D,A
ADD D
ADD D
BIOS
LHLD WBOOT+1
MVI D,®
MOV E,A
DAD D
PCHL
5A38302D36STRING
nn DB ®®H
END
Wenn wir das Programm SWITCHDEMO
betrachten, stellen wir fest, daß eine einfa-
che Parameterübergabe zwischen CP/M
und 6502 möglich ist. Die Parameter kön-
nen entweder direkt über die Zero-Page
übergeben werden, wie dies durch die
Übergabe der horizontalen Cursorposition
demonstriert wird, oder durch „Poken“ in
die 6502-Register-Save-Area, da die
6502-Register bei jeder Aktivierung durch
die Schnittstelle 6502-Z80 geladen
werden.
Nach dem Start des Programms SWITCH-
DEMO erscheint auf dem Bildschirm der
Text „Z80-6502 Switch-Demo“, der durch
die Applesoft-Routine STROUT ausgege-
ben wird. Danach erfolgt ein Rücksprung
zu CP/M, von wo über die BIOS-Funktion
DB "280-6502 SWITCH-DEMO"
CONIN auf einen Tastendruck gewartet
wird, der einen CP/M-Warmstart auslöst.
4. Apple Ile und CP/M
Auch auf diesem Computer ist CP/M ge-
nauso lauffähig wie auf einem Apple Il.
Unangenehm ist nur, daß nach einem CP/
M-Warmstart die Firmware der neuen 80-
Zeichenkarte den gesamten Bildschirm
löscht, und somit Informationen wie z.B
Fehlermeldungen eines Compilers, die für
weitere Operationen benötigt werden,
über den Bildschirm nicht zu verarbeiten
sind. Ebenfalls wird die erweiterte 80-Zei-
chenkarte (= 64K-Karte) nicht unterstützt,
so daß man praktisch 64K Speicherraum
„verschenkt“.
57
5. RAM-Disk für Apple Ile mit
erweiterter 80-Zeichenkarte
Der hier abgedruckte RAM-Disk-Driver ist
für einen Apple Ile mit erweiterter 80-Zei-
chenkarte mit zwei Diskettenlaufwerken
unter Apple-CP/M 56K konfiguriert.
Um die Wirkungsweise der RAM-Disk und
deren Wechselwirkung mit den real exi-
stierenden Laufwerken zu verdeutlichen,
ist es erforderlich, auf die CP/M-Module
BIOS und BDOS näher einzugehen. Auch
kann dann das Programm an andere CP/
M-Versionen angepaßt werden, und der
Leser ist in der Lage, sein eigenes Disket-
tenformat zu implementieren. (Theoretisch
läßt sich der RAM-Disk-Driver auch auf
einem Apple Ilc mit CP/M-Karte imple-
mentieren, doch wurde dies nicht ausge-
testet.)
5.1. Arbeitsweise des BIOS
Dies ist, wie schon erwähnt, der hardware-
abhängige Teil des Betriebssystems. Das
BIOS kommuniziert mit BDOS oder mit
einem Benutzerprogramm durch eine
Sprungtabelle, wodurch 17 definierte
Funktionen erreicht werden können (Bild
2). Die Adresse, ab der diese Sprungta-
belle im Hauptspeicher des Rechners
steht, ist von der maximalen Speicherka-
pazität abhängig. Wenn ein Anwenderpro-
gramm BIOS-Funktionen aufrufen will,
muß es die Adresse der Sprungtabelle im
Speicher kennen, um über diese die
Adresse der selektierten BIOS-Funktion
zu ermitteln. Das Programm GETBIOS
berechnet die Einsprungadresse der ge-
wünschten BIOS-Funktion, indem es die
Adresse des ersten Sprungvektors (Funk-
tion WBOOT) ermittelt, die durch den In-
halt der Speicherstellen 2 und 3 der Page
0 gegeben ist. Daraus können dann die
Einsprungadressen aller BIOS-Funktionen
errechnet werden.
Von den aufgeführten BIOS-Funktionen
interessieren uns nur diejenigen, die mit
den Diskettenoperationen in Verbindung
stehen, insbesondere die Funktionen 9-14
und 16, die im folgenden beschrieben
werden.
SELDSK
Diese Funktion aktiviert das vom Benutzer
spezifizierte Laufwerk. Als Parameter wird
im C-Register die CP/M-Laufwerksnum-
mer übergeben: 0O=A, 1=B, ..., 15=P.
Konnte die Funktion erfolgreich ausgeführt
werden, wird im HL-Register die Adresse
des DPH („Disk Parameter Header“), auf
dessen Bedeutung später eingegangen
wird, zurückgegeben. Tritt ein Fehler auf,
58
GETBIOS
*%*%* GETBIOS x*x*%*
GETBIOS berechnet die Adresse einer BIOS-Funktion (1...16)
Die Nummer der Funktion wird im A-Register Übergeben.
Das HL-Register liefert die Adresse an das aufrufende
zurück.
D19P ORG 19H
nn) WBOOT EQU PPPPH
D109
B1B1
0192
0193
0194
9107
DCR A
MOV D,A
ADD D
ADD D
LHLD WBOOT+1
MVI D,®
0109 MOV E,A
D1DA DAD D
Dd10B RET
d1BC END
GETBIOS.HEX
:OCH1WMW03D5782822AW1NW1EWW5FIL9CIDI
: DDDDDDDDDDDDDDDDDDDDDDDDDnnynnnnnn
so enthält das HL-Register den Wert
0000H.
SETTRK
Hiermit wird die Nummer der Spur ausge-
wählt (BC-Register), auf die beim näch-
sten Diskettenzugriff geschrieben oder
von der gelesen werden soll.
SETSEC
Für alle folgenden Zugriffe auf das aktuelle
Laufwerk wird die gewünschte Sektor-
nummer (BC-Register) festgelegt.
SETDMA
Hier wird die Adresse eines 128-Byte-
Puffers (BC-Register) übergeben. Alle fol-
genden Leseoperationen von der aktuel-
len Diskette schreiben in diesen Bereich,
alle Schreiboperationen übertragen den
Inhalt ab der selektierten Pufferadresse
auf das aktuelle Laufwerk.
READ
Lesen eines gewählten Track/Sector von
der aktuellen Diskette. Nach einem Lese-
fehler enthält das A-Register den Wert 0,
sonst 1.
WRITE
Schreiben eines gewählten Track/Sector
aus dem Puffer auf das aktuelle Disketten-
laufwerk. Es werden die gleichen Parame-
ter wie bei READ zurückgegeben.
SECTRAN
Um die Geschwindigkeit des Diskettenzu-
griffs zu erhöhen, kann ein logischer Sek-
; Warmstart-Vektor holen
‚ Offset in das DE-Reg.
‚ Adresse = Offset + Warmboot
; Zurück
tor in einen physikalischen Sektor über-
setzt werden. Standard-CP/M benutzt ei-
nen „Interleaving-Faktor“ von sechs, d.h.
nach zwei logisch aufeinanderfolgenden
Sektoren werden sechs physikalische
Sektoren übersprungen. Die SECTRAN-
Funktion wird bei Apple-CP/M nicht be-
nutzt, was bedeutet, daß keine physikali-
schen Sektoren übersprungen werden
sollen.
Dem BIOS wird noch ein Satz von Tabel-
len vorangestellt, die wichtige Parameter
für die angeschlossenen Diskettenlauf-
werke beinhalten. Für jedes Diskettenlauf-
werk wird ein DPH (Disk Parameter Hea-
der) angelegt, der 16 Bytes einnimmt. Der
schematische Aufbau eines DPH ist in
Bild 3 dargestellt.
Die ersten 2 Bytes geben die Adresse
eines Vektors für die Übersetzung von
logischen in physikalische Sektoren für
das Laufwerk an. Ist die Adresse 0000H,
so findet keine Übersetzung statt (Apple-
CP/M).
Die nächsten 6 Bytes sind für das BDOS
reserviert und dienen als Scratchspace.
Die 2 folgenden Bytes geben eine Adres-
se an, die einen Arbeitsbereich von 128
Bytes definiert, den das BDOS für Directo-
ry-Operationen benötigt. Es wird für jedes
Laufwerk der gleiche Directory-Puffer ver-
wendet.
Die 2 folgenden Bytes stellen ebenfalls
einen Zeiger dar, der auf den sog. DPB
(Disk Parameter Block) zeigt. Dieser Block
enthält die eigentliche Diskettenbeschrei-
bung. Laufwerke mit gleichen Eigenschaf-
ten sollten denselben DPB benutzen.
Peeker 6/85
———————————_—————
Byte 12 und 13 geben die Adresse der
Prüfsummentabelle an. Die letzte 16-Bit-
Zahl liefert die Adresse des Diskettenbele-
gungsplans im Speicher, der ebenfalls
vom BDOS verwaltet wird.
Apple-CP/M 56K legt 6 DPHs ab Adresse
DA33H und 1 DPB ab Adresse DAYSH an.
Um den Aufbau des DPBs zuverstehen,
betrachte man Bild 4. Hier ist der Aufbau
eines DPBs dargestellt.
SPT gibt die Anzahl der Spuren auf der
Diskette an. BSH und BLM bestimmen
zusammen die Blockgröße auf der Disket-
te, wobei sich BSH berechnet zu
log2 (Blockgröße/128). Die Blockgröße ist
ein Vielfaches von 128, bei den Apple-
Disketten 1024 Bytes. BLM ist die soge-
nannte „Blockmask“ diesichaus2 f (BSH-
1) ergibt. EXM ist die Extensionsmaske
und hängt von der Blockgröße ab. Der
Wert von EXM kann aus Bild 6 bestimmt
werden. DSM bestimmt die totale Spei-
cherkapaziät der Diskette, wobei
(DSM +1) : Blockgröße die gesamte Ka-
pazität der Diskette ohne Systemspuren
ergibt. DRM legt die Anzahl der möglichen
Directory-Einträge fest. Hier muß die ma-
ximale Anzahl -1 eingetragen werden.
CKS gibt die Größe des Directory-Prüf-
vektors an: CKS = (DRM+1) /4.
Auch das Directory selbst belegt Spei-
cherplatz auf der Diskette. ALO und AL1
geben die dafür reservierten Blöcke auf
der Diskette an. Jeder Eintrag benötigt 32
Bytes. Bei 48 möglichen Directory-Einträ-
gen auf der Diskette ergeben sich 48 : 32
= 1536 Bytes, was bei einer Blockgröße
von 1024 Bytes zwei Blöcke in Anspruch
nimmt. Diese Blöcke werden durch Set-
zen eines Bits in ALO und AL1 markiert,
und zwar beginnend mit dem höherwerii-
gen Bit von ALO. Somit erhalten wir bei
den angenommenen Größen für ALO $CO
und für AL1 $00.
Die letzten 2 Bytes, die mit OFF bezeich-
net sind, enthalten die Anzahl der System-
spuren. Apple-CP/M reserviert hier drei
(0..2).
5.2. CP/M-Patch
Um eine RAM-Disk zu installieren, muß
zunächst eine geeignete Stelle gefunden
werden, um die RWTS-Routine zu linken.
Soll ein bestimmter Track/Sector durch
das BIOS gelesen oder geschrieben wer-
den, wird zu einer 6502-Routine ab $0OEO3
verzweigt. Dort kann dann ein Sprung zur
eigenen RWTS erfolgen. Bevor jedoch die
Routine ausgeführt werden kann, muß das
BIOS mehrere erforderliche Parameter
berechnen.
Peeker 6/85
XLT SCRATCH
2 Bytes 6 Bytes
Bild 3
PN 24
2Bytess 2Bytess 2Bytes 2 Bytes
ser [ss [sun [san [os [omm [are [acı Ters [or
Bild 4
1800
0800 2800
Bild 5
DSM
255
Block-
größe
DSM
<208
Bild 6
Die gewählte Laufwerksnummer wird in
$03E4, der angesprochene Slot, in dem
der zugeordnete Disk-Controller installiert
ist, wird mit $10 multipliziert in $03E6 ab-
gelegt. Die Adresse $03EB bestimmt, ob
gelesen oder geschrieben werden soll,
wobei 1 Schreiben und 2 Lesen bedeutet.
Es wird immer auf 2 CP/M-Sektoren (2 &
128 Bytes) auf einmal zugegriffen. Daraus
folgt, daß der DMA-Puffer von 128 Bytes
nicht sofort auf Diskette geschrieben wird,
sondern erst der 256 Bytes große Disket-
tensektor in einen weiteren Puffer ab
$0800 gelesen wird. Erst danach kopiert
CP/M den Inhalt des DMA-Puffers entwe-
der in die erste oder zweite Hälfte des
Zwischenpuffers. Wenn auf einen anderen
Diskettensektor zugegriffen werden soll,
wird der Zwischenpuffer bedingungslos
auf Diskette gebracht.
Die Spurnummer wird in $03E0, die Num-
mer des Diskettensektors in $03E1 über-
geben.
Von Bedeutung sind das Errorflag
($03EA), das angibt, ob die Diskettenope-
ration fehlerfrei abgelaufen ist (0 = kein
Fehler), und die Speicherstelle DEAEH,
welche die Nummer des momentan unter
CP/M aktiven Laufwerks angibt (A=0,
B=1, C=2...).
A800 ı D000 DOOO
E000 FO0O
FEFF
B/FF IDFFF DFFF EFFF 0300
Bank 2 Bank 1 Bank 1
oben oben unten
5.3. CP/M-RAM-Disk-Driver
Der RAM-Disk-Driver besteht aus zwei
Teilen. Der erste Teil befindet sich im
AUXZP-Bereich auf der erweiterten 80-
Zeichenkarte ab Adresse $FFOO und be-
legt etwa eine Speicherseite. Die imaginä-
ren Spuren der RAM-Disk (Bild 5) mit den
Nummern 0-10 werden im Zusatzspeicher
im AUXMAIN-47,5K-Bereich ab Adresse
$0800-$B7FF abgebildet. Die Spuren 11
und 12 entsprechen den beiden Banks der
Language-Card ($DO00-$DFFF) im
AUXZP-Bereich des Zusatzspeichers.
Spur 13 und 14 korrespondieren mit mit
der gemeinsamen Bank der Language-
Card im Zusatzspeicher ($E000-$FEFF).
Spur 14, Diskettensektor 15 wird durch die
Seite drei ($0300-$03FF) des AUXMAIN-
47,5K-Bereichs repräsentiert. Der eigent-
liche Driver kann vom AUXZP-Bereich des
Zusatzspeichers Daten aus den imaginä-
ren Spuren 0..14 sowohl in den Zwischen-
puffer ab Adresse $0800 auf der Hauptpla-
tine schreiben als auch vom Zwischenpuf-
fer lesen und in den Zusatzspeicher brin-
gen, da sich der Driver in jedem Fall selber
lesen kann.
Für die Spur 15 bleibt nur noch die Bank 1
der Language-Card auf der Hauptplatine
im Bereich $DO00-$DFFF übrig, da nur
Bank 2 von CP/M selbst benutzt wird. Um
von dieser Spur in den Zwischenpuffer zu
lesen, muß sich ein weiterer Driver im
„ungebankten“ Bereich des Hauptspei-
chers befinden. Der zweite Driver liegt ab
FC70OH (= $0C70) in einem von CP/M
nicht benötigten Bereich.
59
a EEE EEE TEE nn nn
5.4. Installation des RAM-Disk-Drivers
Zunächst sind das Applesoft-Programm
RAMDISK.INIT.DOS und die drei 6502-
Programme AUXDRIVER, MOVEDRIVER
und RAMDISK.FORMATTER zu _ er-
stellen.
MOVEDRIVER verschiebt lediglich den
Objekt-Code, der ab Adresse $FFOO lauf-
fähig sein muß, vom Hauptspeicher in den
Zusatzspeicher.
Der RAMDISK.FORMATTER _initialisiert
den gesamten Speicherbereich, den die
RAM-Disk verwendet, mit dem Wert $E5.
Als viertes Modul muß noch das Pro-
gramm RDSKINIT.COM auf der CP/M-
Diskette vorhanden sein. Es ist in 8080-
Assembler geschrieben, da kein Z80-As-
sembler zur Verfügung stand.
RDSKINIT.COM patcht das CP/M an der
Stelle $0E03. Hier wird ein Sprung zur
eigenen RWTS-Routine installiert. Des
weiteren muß die Anzahl der angeschlos-
senen Diskettenlaufwerke erhöht werden,
indem in den Speicherplatz $03B8 eine 3
eingetragen wird, so daß die RAM-Disk
unter Laufwerk „C“ angesprochen wer-
den kann. Außerdem wird ein neuer DPB
für die RAM-Disk initialisiert und die
Adresse in den DPH eingetragen. Bleibt
nur noch das „Poken“ des Drivers im
Hauptspeicher ab Adresse $0C70. Der
Driver prüft zuerst, ob das angeschlosse-
ne Laufwerk die RAM-Disk ist. Wenn ja,
wird der ALTZPAUX-Bereich selektiert
und die Language-Card schreib- und lese-
fähig gemacht und zum Driver im Zusatz-
speicher gesprungen. Die Rückkehr er-
folgt entweder über RTSDRIVER, wenn
auf die Spuren 0...14 zugegriffen wurde,
oder durch einen Sprung nach DRIVER2
vom Driver im Zusatzspeicher (Zugriff auf
Spur 15). Alle Transferparameter, die AC-
CESS 2 benötigt, sind bereits errechnet,
müssen jedoch vorher von der AUX-Zero-
Page in die MAIN-Zero-Page kopiert wer-
den. Am Ende wird das RWTS-Errorflag
auf O gesetzt, so daß kein BDOS-Error
auftreten kann. Der Return zum Z80 wird
über die oben beschriebene Schnittstelle
ausgeführt.
Wurde ein physisch existierendes Disket-
tenlaufwerk angesprochen, wird die nor-
male RWTS-Routine ab Adresse $0E10
aufgerufen und zum Z80 zurückgekehrt.
5.5 Starten des RAM-Disk-Drivers
Der RAM-Disk-Driver wird von DOS 3.3
aus gestartet. Booten Sie DOS und starten
das Programm RAMDISK.INIT.DOS. Da-
nach können Sie wie gewohnt CP/M boo-
60
RDSKINIT
; *#%*%* RDSKINIT x%*%*
‚ Installiert CP/M-Patch für RAM-Disk
D190 ORG ®1P@H
FC79 = PATCHADR EQU ÖFC7OH ‚Hier CP/M-Patch installieren
F3B8 = DISKNR EQU @F3B8H ‚Anzahl der installierten Laufwerke
FEß3 = RWTSPATCH EQU ®FEB3H
DA83 = DPH EQU ®DA83H
DA5D = DPHPATCH EQU ®DA5DH
; Ändern des DPB-Zeigers im DPH für Disk C
d100 2183DA LXI H,DPH
0103 225DDA SHLD DPHPATCH
; Neuen DPB für RAM-Disk "C" initialisieren
D106 1183DA LXI D,DPH
0109 P19EPL LXI B,DPB
DlBC 260F MVI H,15
B1DE 7C TRANSFER MOV A,H
Ö10F B7 ORA A
B11® CAI1BPOL JZ FERTIG
113 25 DCR H
0114 DA LDAX B
0115 12 STAX D
116 93 INX B
0117 13 INX D
B118 C3PEP1 JMP TRANSFER
P11B 11P3FE FERTIG LXI D,RWTSPATCH
ÖlIE 3EAC MVI A,®®ACH ; JMP START
0129 12 STAX D
0121 13 INX D
0122 3E7® MVI A,@®070H
0124 12 STAX D
0125 13 INX D
0126 3EPC MVI A,@P@CH
0128 12 STAX D
0129 11B8F3 LXI D,DISKNR
B12C 3E93 MVI A,®3 ; 3 Laufwerke A,B,C
Ö12E 12 STAX D
Öl12F 1170FC LXI D, PATCHADR
0132 914401 LXI B,OPCODE
0135 2659 MVI H,ENDOP-OPCODE
0137 7C NEXT MOV A,H
0138 B7 ORA A
0139 CAPPOB JZ v99P
Ö13C 25 DCR H
B13D PA LDAX B
Ö13E 12 STAX D
Ö13F 93 INX B
0149 13 INX D
0141 C33701 JMP NEXT
0144 AD83SC® OPCODE DB PADH,83H,0COH ; LDA $c083
0147 ADAEFE DB @ADH,PAEH,PFEH ; LDA TMPDSK
B14A C9P2 DB ®C9YH, 92H > CMP #92
B1AC FODA DB @F@H,PAH BEQ RAMDISK
Ö1AE 98 DB 98H PHP
Ö14AF 78 DB 78H : SEI
0150 20100E DB 2@H, 10H, ®EH i JSR RWTS
0153 AD81CP DB ®ADH, 81H, dCOH ; LDA $cQ81l
0156 28 DB 28H PLP
0157 6 DB 6®H ; RTS
0158 8DP9CH DB 8DH, 9H, BCOH ‚ RAMDISK STA ALTZPAUX
015B AD83CP® DB QADH,83H,ÖCOH ; LDA $cP83
B15E AD8S3CH DB PADH, 83H , ÖCÖH t LDA $c983
B161 ACQOFF DB ACH, P@H,, ÖFFH JMP DRIVER
0164 8DPSCh DB 8DH, ß8H, BCQH ; RTSDRIVER STA ALTZPMAIN
®167 AD81C® DB PADH, 81H, PCOH LDA $co81
D16A 69 DB 6ßH RTS
Ö16B A5CE DB PA5H,dCEH ; DRIVER2 LDA IND1
B16D A6CF DB PA6H, ÖCFH LDX INDI+1
B16F AAP6 DB PA4H,P6 LDY IND2
B171 SCCBHC DB ®8CH,PCBH,PÖCH ; STY TMP
0174 A497 DB QA4H,97 LDY IND2+1
0176 8DBSCH DB @8DH, 8, @COH STA ALTZPMAIN
0179 85CE DB 85H, ÖCEH STA IND1
017B 86CF DB ®86H,,ÖCFH STX INDI+1
017D 8497 DB 9844,07 ; STY IND2+1
B1T7F ADCBGC DB ®ADH, ÖC8H, ÖCH : LDA TMP
0182 8596 DB 85H, 06 : STA IND2
0184 ADSBC® DB PADH , 8BH, ÖCQH x LDA $CP8B
Peeker 6/85
ten und RDSKINIT.COM starten, wenn Sie
die RAM-DISK aktivieren wollen.
Der Driver im Hauptspeicher wird bei ei-
nem CP/M-Warmstart nicht zerstört. Des-
halb muß das Programm RDSKINIT.COM
nur nach einem Kaltstart wieder gestartet
werden. Alle Daten auf der RAM-Disk und
der Driver im Zusatzspeicher bleiben er-
halten, bis Sie den Rechner ausschalten.
5.6 Anpassen des RAM-Disk-Drivers an
andere CP/M-Versionen
Der RAM-Disk-Driver ist für Apple-CP/M
Version 2.20 56K mit zwei Diskettenlauf-
werken konfiguriert. Wenn mehr als zwei
Laufwerke angeschlossen sind, muß der
Wert in Speicherstelle F3B8H entspre-
chend geändert und der Zeiger auf den
DPB im der RAM-Disk zugeordneten DPH
angepaßt werden.
Der DPB für die RAM-Disk ist so intiali-
siert, daß 32 Directory-Einträge möglich
sind. Daraus ergibt sich eine Netto-Spei-
cherkapazität von 63K (keine Systemspu-
ren). Der Benutzer kann in den DPB ande-
re Parameter eintragen, um das Pseudo-
Laufwerk seinen eigenen Bedürfnissen
anzupassen.
5.7. Zusammenfassung
Die Peeker-Sammeldiskette enthält fol-
gende RAM-Disk-Programme:
— RAMDISK.INIT.DOS (Basic)
— T.AUXDRIVER (Source)
— AUXDRIVER (6502)
— T.MOVEDRIVER (Source)
— MOVEDRIVER (6502)
— T.RAMDISK.FORMATTER (Source)
— RAMDISK.FORMATTER (6502)
Das Z80-Programm RDSKINIT.COM so-
wie die Demos SWITCHDEMO und GET-
BIOS befinden sich nicht auf der Sammel-
disk.
Die RAM-Disk läßt sich wie folgt instal-
lieren:
1. Booten von DOS 3.3
2. Von Peeker-Sammeldisk mit
RUN RAMDISK.INIT.DOS Return
Driver auf 64K-Karte schieben.
3. Booten von CP/M
4. Mit RDSKINIT Return
Driver anschließen.
5. Danach RAM-Disk mit
C: Return
ansprechen.
Peeker 6/85
0187
D18A
B18C
d18E
d199
0191
0193
0195
0198
d19B
B19C
AD8BCP®
ABPB®
BICE
9196
88
DOF9
A9OP
8DEA®3
AD81C®
69
nr)
DADH ,8BH , ÖCÖH
DAQH, BP
®B1H, PCEH
091H, 6
088H
ÖD®H ‚, ÖF9YH
DA9H,, BB
Ö8DH , BEAH,, 03H
DADH,, 81H, BCOH
D60H
nr)
;‚ ACCESS2
; NEXT LDA (IND1),Y
D19D FF ENDOP ÖFFH
D19E 2909 DPB 20H , 00
D1AB 9307 03,07
d1A2 BB W)
D1A3 3F@® 3FH, d®
DlA5 1FßB 1FH, 09
D1A7 80 80H
D1A8 99 nn)
D1A9 BOB D0 , 00
DlAB BOHB d0 , 00
DL1AD
RDSKINIT.HEX
: 10010009
: 10011999
:10012909
: 10013009
: 10014009
:10015999
: 10016009
: 10817009
: 10018000
: 10019909
:ßDO1AQB®
Hinweis zum Erstellen der 8080-
Assemblerprogramme unter CP/M
Dieser Hinweis ist für diejenigen Leser ge-
dacht, die nicht mit den abgedruckten
8080-Quelltexten in Verbindung mit dem
CP/M-Assembler arbeiten möchten. Die
Programme können direkt mit dem DDT
(Dynamic Debbuging Tool) als Hexdump
eingegeben werden. Starten Sie von Ihrer
CP/M-Diskette des DDT (DDT und Return
eingeben). Es meldet sich mit
DDT VERS 2.2
Danach geben Sie „S0100“ ein. Es folgt
die Meldung „O100 01“. Hierbei bedeutet
„0100 die momentan angesprochene
Speicherstelle und „O1“ deren Inhalt.
Jetzt kann der entsprechende Hexdump -—
jeweils ein Byte, gefolgt von der Return-
Taste — eingegeben werden.
Der „S-Modus“ wird nach abgeschlosse-
ner Eingabe des Hexdumps mit „.“ been-
det. Verlassen Sie den DDT mit Control-C.
Nun muß das erstellte Programm noch ab-
gespeichert werden. Dazu tippen Sie
„SAVE 1 Name.COM“.
LDA $CQ8B
LDY #9
STA (IND2),Y
DEY
BNE NEXT
LDA #9
STA ERFL
LDA $co8l
RTS
DB 9
‚Sektoren pro Spur
‚BSH/BLM
;EXM
‚DSM
; DRM
;AL®
‚AL1l
; CKS
‚OFF
2183DA225DDA1183DAP19EB1269F7CB7A2
CA1BP1250A120313C30Eß111P3FEZEACZA
12133E7012133EPC1211B8F33E0312115B
T7OFCO1440126597CB7CAB000250A12034D
1303370 1AD83CBADAEFECIG2FOWANET78L13
20 10PEAD81CH286B8DPICHADSSCHADEZ3T5
COACHÖFFEDPSCHADBSICHSBASCEAGCFA455
BESCCEÖCAAWTEDPSCHB5SCESECFBANTAD3I
C8EBCE5PEADSBCHADSBCHANNGBICEIINGGA
88DÖFYAYIBBSDEABZADBSLCHSHNÄFF2DBDTE
DS07D03FHB1FONSBHDDDDDDDDDEADnn‘‘
61
——————————————————————————————————
RAMDISK.INIT.DOS
100 REM RAMDISK.INIT.DOS
11® HOME :D$ = CHR$ (4)
120 PRINT "CP/M-RAMDISK-DRIVER WIRD INSTALLIERT ...
130 PRINT D$"BLOAD AUXDRIVER, A$9909"
14® PRINT D$"BRUN MOVEDRIVER, A$9509"
150 PRINT D$"BRUN RAMDISK.FORMATTER, A$9P9N"
AUXDRIVER
*
* AUXDRIVER
* AUXZP-Berei
E 2
*
ORG
ovo_ınıV uw mDd
*
BANK2 EQU
BANK1 EQU
RAMRDA EQU
RAMRDM EQU
RMWRTA EQU
RMWRTM EQU
.
RW EQU
BUFF EQU
ERFL EQU
TRACK EQU
SECTOR EQU
”
IND1 EQU
IND2 EQU
.
START LDA
STA
STA
LDA
Spurnummer
STA
Adresse im
JSR
LDA
Kein Fehler
BNE
STX
JMP
PHA
JSR
LDA
ROR
BCS
PLA
STA
STA
STA
LDA
STA
ACCESS LDY
LDA
CMP
BNE
STA
STA
JMP
LDA
STA
DEY
BNE
KRRKRFKTEKETTTTETT ET HE I
%*
%*
ch $FFOD x
*
KRRKRKERTERTETTET TEE I E K %
$FFOQ
$C983
$cQ8B
$c0p3
$c992
$c005
$C094
$03EB
$0800
$03EA
$O3EB
$O3EL
$CE
$06
+00
INDl
IND2
TRACK
in AUXZP ablegen
STRACK
Speicher berechnen
CALCADR
ADR+1
aufgetreten
OKAY
ERFL
RETURNF ‚Fehler!
SELECT ; LC-Bank
RW ;R/W?
A
TOBUFF ‚Read
‚Adreßbyte
RAMRDM ;RDMAIN
RMWRTA ;WRAUX
IND2+1 ‚Adreßbyte
#>BUFF ;Pufferadresse
INDI1+1
#0 ‚256 Bytes
STRACK Ä
#15 ‚Spur 15?
NEXT ‚nein
RAMRDM ;RDMAIN
RMWRTM ;WRMAIN
DRIVER2 ;Kopieren
(IND1),Y
(IND2),Y
NEXT ‚fertig?
* Normaler Return
LDA
STA
RETURNF STA
STA
JMP
62
+00
ERFL ;CP/M-Fehler
RAMRDM ;RDMAIN
RMWRTM ;WRMAIN
RTSDRIV ‚zurück
FFE3: 9
228 Bytes
TOBUFF PLA ‚Adreßbyte
STA RAMRDA ;RDAUX
STA RMWRTM ;WRMAIN
STA INDIl+1 ;‚Adreßbyte
LDA #+>BUFF ;Pufferadresse
STA IND2+1 ‚für Kopieren
JMP ACCESS ;Kopieren
*
* CALCADR berechnet die Speicher-Page,
* die dem Track/Sector entspricht.
*
CALCADR LDX #1
LDA #9
STA ADR ;LSB immer ®
LDA TRACK
CMP #11
BPL LABIl
ASL
ASL
ASL
ASL
ORA #98
CLC
ADC SECTOR
STA ADR+1
RTS
CMP #15
BEQ TRI15
CMP #14
BEQ TRI14
CMP #13
BEQ TRI3
CMP #12
BEQ TRI2
CMP #11
BNE ERRI1 ‚unzulässig
STX ADR ;‚Bankl merken
LDA +#$D®
JMP EXITl
LDA +#$Eß
JMP EXITl
LDA SECTOR
CMP #$@F
BNE LAB2
LDA #$93
JMP EXIT2
LDA #$F®
JMP EXITl
LDA #998 ;Fehler
STA ADR
STA ADR+1 ;‚Adresse=
RTS ‚zurück
HEX 99
HEX ®®
* Select setzt Softswitch für
* Banking der Language-Card
SELECT LDA ADR+1
AND #Z11119999
CMP #$D®
BEQ LCCARD
RTS
LDA
BEQ
LDA
STA ‚Bankl-Flag
LDA ;R/W Bankl
LDA
RTS
LDA ;R/W Bank2
LDA
RTS
*
RTSDRIV EQU
DRIVER2 EQU
STRACK HEX
Peeker 6/85
I N
MOVEDRIVER
9533: @1l
52 Bytes
oo oı9VDum Au Dr
KERFKFKFKKKFRRKKRFERKKRKHF KK FI THII KR
%* *
* MOVEDRIVER AUX $FFO® x
* *
KRRFKKKRKFRKKRRRKKFRKHK FF KK RI
ORG $9599
EQU $09
EQU $92
EQU $cop8
STA ALTZP+1
LDA #<SADR
STA START
LDA #>SADR
STA START+1
LDA #<DADR
STA ZIEL
LDA #>DADR
STA ZIEL+1
;‚AUXZP
LDA $CP8B
LDA $CP8B
LDX BLKS
LDY #9
LDA (START),Y
STA (ZIEL),Y
DEY
BNE NEXT
INC START+1
INC ZIEL+l
DEX
BNE NEXT
STA ALTZP
LDA $co8sl
RTS
;MAINZP
‚Read ROM
EQU $9909
EQU $FFOd
HEX @1
RAMDISK.FORMATTER
Peeker 6/85
ovo_nsoVourhumdHm
KRRFFKFRFKÄKFERKFRKKFH KK FT FE KR
*
* RAMDISK.FORMATTER
x
* D300-03FF
* D800-BFFF
* DO00-DFFF x*2
* DO00-DFFF MAIN
* Eßßß-FEFF
*
KRAKFKRKKRKRKKRKKRFKFEKKE KK KT KIA FI KU
%*
BANK2 EQU $cp83
BANKl EQU $co8sB
ALTZPM EQU $cp98
ALTZPA EQU $c009
RMWRTA EQU $c005
RMWRTM EQU $cp94
DADR EQU $CE
*
Pe De
ORG $9999
0BJ $9009
*
*AUXMAIN -—- B800-BFFF
*
STA RMWRTA
LDA #98
STA DADR+1
LDA #9®
STA DADR
LDX #184
JSR INIT
*
*xAUXMAIN -— B309-Q3FF
x
;‚Bankl R/W
‚256 Bytes
9066:
9968:
906A:
906C:
906D:
9BEF:
9971:
9072:
9974:
117 Bytes
AD
A9
9
88
Dp
E6
CA
Dp
6P
LDA #93
STA DADR+1
LDA #9p®
STA DADR
LDX #1
JSR INIT
%*
*LC-BANKl -—- DOBB-DFFF/MAIN
%*
LDA BANKl
LDA BANKl
LDA #$DP
STA DADR+1
LDA #9®
STA DADR
LDX #16
JSR INIT
*
#*LC-BANKl,2 —- DOBB-DFFF/AUX
%*
LDA BANKIl
LDA BANKl
JSR INITB
LDA BANK2
LDA BANK2
STA ALTZPA
LDA #$D®
STA DADR+1
LDA #$09
STA DADR
LDX #16
JSR INIT
%*
*COMMON LC -—- EßPßß-FEFF
*
LDA #$Eß
STA DADR+1
LDA #$09
STA DADR
LDX #31
JSR INIT
STA RMWRTM
LDA $cg8l
STA ALTZPM
RTS
‚Read ROM
* Init mit $E5, Anzahl der 256-Byte-Blöcke
* im X-Register
INIT LDY #9
LDA #$E5
NEXT STA (DADR),Y
DEY
BNE NEXT
INC DADR+1
DEX
BNE NEXT
RTS
Der nächste Peeker
Heft 7/1985
erscheint am
24.6. 1985
63
ajain
ajain
sleinjainiaje
ujeln) /njaim
alalinjainimjm
ajain
alaim
Solitaire ist ein Spiel, bei dem es darum
geht, durch Überspringen von Steinen mit
anderen Steinen das Spielfeld bis auf ei-
nen zu leeren. Dazu ist anfänglich die mitt-
lere Position auf dem Spielfeld unbesetzt.
Ein Stein darf nur springen, wenn direkt
links, rechts, über oder unter ihm ein Stein
steht und die übernächste Position in die-
ser Richtung unbesetzt ist. Der Stein
springt dann auf den freien Platz, wobei
der übersprungene Stein entfernt wird.
Nach einigen Spielzügen können die ver-
bleibenden Steine so weit entfernt sein,
daß sie sich nicht mehr überspringen kön-
nen. Genau hier liegt die Schwierigkeit
von Solitaire.
Das vorliegende Programm SOLITAIRE
versucht dafür eine Lösung zu finden. Sy-
stematisch führt es mögliche Sprünge in
der Reihenfolge links, oben, rechts oder
unten aus. Gerät es dabei in eine Sack-
gasse, so macht es den letzten Zug rück-
gängig und versucht eine andere Möglich-
keit. Hält man diese Systematik ein, kann
man sicher sein, einen erfolgreichen
Spielverlauf zu berechnen. Diese Vorge-
hensweise des systematischen Program-
mierens wurde in CHIP Special Il als
„Backtracking“ beschrieben, wobei Pro-
gramme für 6800 und den TRS 80 vorge-
stellt wurden.
Auf der Suche nach der Lösung des Soli-
taire-Problems ist der einzelne Suchschritt
64
von Stefan Maas
SOLITAIRE
"TI.
_"I1TL
"TTLLLL
"TITEL
TTILLL
IT.
"TT
undwiemaneslöst
relativ einfach (Die Zeilenzahlen beziehen
sich auf das Applesoft-Programm SOLI-
TAIRE):
— Nach der Festlegung der Grundstellung
(Zeile 160-165) beginnt jeder Versuch
beim ersten Stein unten links auf dem
Spielbrett. Es werden die Sprungmöglich-
keiten in der Reihenfolge links, oben,
rechts oder unten geprüft und ausgewertet
(Zeile 205-335), gegebenenfalls auch
ausgeführt (Zeile 355-420).
— Gibt es keine weiteren Zugmöglichkei-
ten mehr und ist nicht genau ein Stein im
Zentrum des Spielfeldes stehengeblieben,
so ist das Spiel in eine Sackgasse geraten.
Der letzte Zug wird nun rückgängig ge-
macht (Zeile 440-460) und nach anderen
Zugmöglichkeiten gesucht.
— Die Lösung ist gefunden worden: Ein
Stein ist genau im Zentrum des Spielfel-
des stehengeblieben. (Zeile 405-410: Es
sind X = 31 Züge gemacht worden und
der letzte Spielstein besetzt das zentrale
Spielfeld A(60) = 1.)
Die Ausgabe der Lösung erfolgt nun ent-
weder über den Drucker (angepaßt an den
Drucker Epson MX-82F/T Typ Ill; anson-
sten sind in den Zeilen 610-800 kleine
Modifikationen notwendig) oder aber über
den Bildschirm (Zeile 560-590).
Für die Grafik sorgen die Routinen in den
Zeilen 480-555.
Da das Programm in Applesoft für die LöÖ-
sung 14 Std. und etwa 35 Min. benötigt,
besteht die Möglichkeit der Spielstandab-
speicherung (Zeile 400, 820-825), die mit
Ctrl-Q aufgerufen wird. Die Zahlenwerte
der einzelnen Brettpositionen können der
Tabelle 1 entnommen werden.
Zusätzlich ist auch noch die Assem-
blerroutine SOLITAIRE.B eingebaut (Auf-
ruf in Zeile 945-960), welche die Lösung
in 41 Sekunden findet (eine Spielstandab-
speicherung ist hierbei nicht möglich) und
vom Menü des Applesoft-Programms aus
gestartet werden kann. Die Arbeitsweise
des Binär-Programms ist mit der des Ba-
sic-Programms identisch.
Zusatzinformation: Vor der Eingabe und
dem späteren Aufruf des Applesoft-Pro-
gramms sollte man die folgenden Parame-
ter auf der Zero-Page ändern, da es we-
gen der Länge im HGR-Speicher liegt:
$0067 = $00, $0068 = $40, $3FFF = $00
bzw. von Applesoft aus: POKE 103,0:
POKE 104,64: POKE 16383,0. Das Pro-
gramm SOLITAIRE.START führt diese
POKESs aus und ruft dann das eigentliche
Programm SOLITAIRE auf.
Der Binärfile ist von $8000-$8219 abzu-
speichern (BSAVE SOLITAIRE.B,
A$8000, L$021A).
Ansonsten erklärt sich das Programm
durch sein Menü von selbst.
Peeker 6/85
a"
SOLITAIRE.START
1® POKE 103,9: POKE 194,64: POKE 16383, ®
2® PRINT CHR$ (4);"RUN SOLITAIRE""
SOLITAIRE
100 REM Bssslalalslslalalalalalalalal RR
105 REM * *
11® REM * SOLITAIRE - von Stefan Maas, MS den 25.19.84
115 REM « *
128 REM = BBssaassseas BEER
125 REM
130 REM
14® TEXT : HOME : DIM A(129),B(31),C(31):D$(1) = "LINKS ":
D$(2) = "HOCH ":D$(3) = "RECHTS":D$(4) = "RUNTER":
GOTO 845
REM Festlegung der Grundstellung
FOR I = 1 TO 32: READ A:A(A) = 1: NEXT I: RESTORE
DATA 26,27,28,37,38,39,46,47,48,49,50,51,52,57,58,59,
61,62,63,68,69,70,71,72,73,74,81,82,83,92,953,94
IF P2 = 4 THEN GOTO 565
IF P3 = 2 THEN GOTO 825
IF P2 = 1 THEN GOTO 619
REM Ausführung der Züge
REM 1,2,3,4 = 1.,o.,r.,u. Bewegung in B/C(1-31) abgesp.
Ei —
I= I+ 1: IF I > 94 THEN GOTO 449: REM kein Zug mehr
möglich
IF A(I) = ® THEN GOTO 21®
REM Bewegung nach links
IFA(I-1) =9®B0RA(I-2) <>BORI=46 OR I = 47
OR I = 57 OR I = 58 OR I = 68 OR I = 69 THEN GOTO 269
= I - 2:B = 1: GOSUB 335
REM Bewegung nach oben
IF A(I+11l) =® ORA(I +22) <>PB OR I > 89 ANDI <
84 OR I > 91 AND I < 95 THEN GOTO 285
= I + 22:B = 2: GOSUB 335
REM Bewegung nach rechts
IF A(I+1) = 0ORA(I+2) <>BORI=510R I = 5
OR I = 62 OR I = 63 OR I = 73 OR I = 74 THEN GOTO 319
= I + 2:B = 3: GOSUB 335
REM Bewegung nach unten
IF A(I- 11) OR A(I- 22) <>BOR I > RS AND I <
29 OR I > 36 I < 48 THEN GOTO 219
GOSUB 335: GOTO 219
REM Auswertung der Versuche
IFA=240RA=250RA=290RA=3BORA= 35 0RA
= 36 ORA=4ß ORA = 41 0ORA = 79 0RA = 89 ORA = 84
OR A = 85 ORA = 9ß OR A = 91 OR A = 95 OR A = 96 THEN
RETURN
REM Ausführung der Versuche
POP :X = X + 1: REM Pointer
Y=Y+1: VTAB 21: HTAB 10: PRINT Y;
VTAB 23: HTAB 11: PRINT I" / "D$(B);
A(I) =: IF B= 1 THEN HCOLOR= :Il = I: GOSUB 515:
HCOLOR= 7:Il = I - 2: GOSUB 515: HCOLOR= 9:Il = I - ]:
GOSUB 515:A(I - 1) = B:A(I - 2) = 1:C(X) = I - 2: GOTO
390
IF B = 2 THEN HCOLOR= 9:Il = I: GOSUB 515: HCOLOR=
7:Il = I + 22: GOSUB 515: HCOLOR= ®@:Il = I + 11: GOSUB
515:A(I + 11) = B:A(I + 22) = 1:C(X) = I + 22: GOTO 399
IF B = 3 THEN HCOLOR= @:Il = I: GOSUB 515: HCOLOR=
7:Il = I + 2: GOSUB 515: HCOLOR= ß:Il = I + 1: GOSUB
515:A(I + 1) = B:A(I + 2) = 1:C(X) = I + 2: GOTO 399
HCOLOR= 9:Il = I: GOSUB 515: HCOLOR= 7:Il = I - 22:
GOSUB 515: HCOLOR= 9:Il = I - 11: GOSUB 515:A(I - 11) =
B:A(I - 22) = 1:C(X) = I - 22
IF P3 = 2 THEN GOTO 555
IF P2 = 4 THEN GOTO 585
B(X) = B:Q = PEEK (49152): IF Q = 145 THEN POKE
49168,®: GOTO 829
Peeker 6/85
IF X < > 31 THEN GOTO 285
IF A(60) < > 1 THEN GOTO 295
IF P2 = 2 THEN GOTO 569
IF P2 l THEN GOTO 719
REM Rüchnahme von Zügen
A(C(X))
IF B(X) = 1 THEN I = C(X) + 2: HCOLOR= ®:Il = C(X):
GOSUB 515: HCOLOR= 7:Il = I - 1: GOSUB 515:I1 = I:
GOSUB 515:A(C(X) + 1) = 1!A(C(X) + 2) = 1:X=X- |]:
GOTO 269
IF B(X) = 2 THEN I =C
GOSUB 515: HCOLOR= 7:I
GOSUB 515:A(C(X) - 11)
GOTO 285
IF B(X) = 3 THEN I = C(X)
GOSUB 515: HCOLOR= 7:Il =
GOSUB 515:A(C(X) - 1) = 1
GOTO 319
I = C(X) + 22: HCOLOR= 9:Il = C(X): GOSUB 515: HCOLOR=
7:Il = I - 11: GOSUB 515:I1l = I: GOSUB 515:A(C(X) + 11)
= 1:A(C(X) + 22) = 1:X= X - 1: GOTO 219
(X) - 22: HCOLOR= ®:Il = C(X):
1= I + 11: GOSUB 515:I1l = I:
= 1:A(C(X) - 22) = 1:X=X-|1:
- 2: HCOLOR= 9:Il = C(X):
I+ 1: GOSUB 515:Il = I:
:A(C(X) - 2) = 1:X=X -]:
REM Grafik mit Text
HOME : HGR : HCOLOR= 7
HPLOT 116,42 TO 162,42 TO 162,70 TO 199,78 TO 199,116
TO 162,116 TO 162,144 TO 116,144 TO 116,116 TO 88,116
TO 88,78 TO 116,78 TO 116,42
X = 117:Y = 43: GOSUB 495:X = 8
145:Y = 71: GOSUB 495:X = 117:Y
505
FOR I = 1 TO 4: FOR J = PB TO 2: HPLOTX,Y+JTOX +
45,Y + J: NEXT J:Y=Y + 14: NEXT I:Y=Y - 56
FOR I = 1 T0 4: FOR J = 9 TO 2: HPLOTX + J,YTOX+
J,Y + 45: NEXT J:X = X + 14: NEXT I: RETURN
FOR Il = 26 TO 28: GOSUB 515: NEXT Il: FOR Il = 37 TO
39: GOSUB 515: NEXT Il: FOR Il = 46 TO 52: GOSUB 515:
NEXT Il: FOR Il = 57 TO 59: GOSUB 515: NEXT Il: FOR Il
= 61 TO 63: GOSUB 515: NEXT Il: FOR Il = 68 TO 74:
GOSUB 515: NEXT Il
FOR Il = 81 TO 83: GOSUB 515: NEXT Il: FOR Il = 92 TO
94: GOSUB 515: NEXT Il: GOTO 525
I2 = Il / 11:X1 = INT ((I2 - INT (I2)) * 180) * 14 +
80:Yl = 168 - INT (I2) * 14
FOR J = ® TO 6: HPLOT X1,Yl + J TO X1 + 6,Yl + J: NEXT
J: RETURN
VTAB 21: PRINT "Versuch:': VTAB 23: PRINT "Position:";
X = 0:Y = B: GOTO 16%
T=X:Y=Y-<X: FORX 1 TO T:B=B(X): IFB= 1] THEN
= C(X) + 2: GOTO 369
FB=2 THEN I = C(X) 22: GOTO 369
FB=3 THEN I =cC(X) 2: GOTO 369
I= C(X) + 22: GOTO 369
NEXT X:P3 = 0:X = X - 1: GOTO 205
T=X:Tl = Y:P2 = 4: GOSUB 489
Y= Tl - 31: FOR X = 1 TO T: GOSUB 599:B = B(X): IFB=
1 THEN I = C(X) + 2: GOTO 369
IF B= 2 THEN I = C(X) - 22: GOTO 369
IF B= 3 THEN I = C(X) - 2: GOTO 36%
I= C(X) + 22: GOTO 36%
NEXT X: GOSUB 590:X = X - 1: TEXT : HOME : END
VTAB 23: HTAB 28: PRINT "Taste:";: GET T$: RETURN
9:Y = 71: GOSUB 495:X =
= 99: GOSUB 495: GOTO
I
I
I
REM Druckeransteuerung
VTAB 19: POKE 35,5: PR# 1
PRINT CHR$ (27);"D"; CHR$ (34); CHR$ (38); CHR$ (9)
PRINT CHR$ (14); CHR$ (9) ;" "
PRINT CHR$ (14); CHR$ (9); CHR$ (9) ;"SOLITAIRE"
PRINT CHR$ (27);"S"; CHR$ (®); CHR$ (15) ;"
Geschrieben von St. Maas, Münster 25.19.84"
PRINT CHR$ (27);"H"; CHR$ (27);"T"; CHR$ (18);
GOSUB 809: IF U = 1 THEN U = ß: GOTO 715
GOSUB 799: PRINT "Brettkodierung:";: GOSUB 795
PRINT CHR$ (27);"D"; CHR$ (48); CHR$ (9);
GOSUB 798: PRINT CHR$ (27);"D"; CHR$ (33); CHR$ (9);
CHR$ (9) ;"Zug-Beispiel:";: GOSUB 795
PRINT CHR$ (27);"D"; CHR$ (48); CHR$ (P)
PRINT : PRINT " 92 93 94"; CHR$ (®); CHR$ (9);
"38 / HOCH bedeutet: "
PRINT "' 8l 82 83"
PRINT "68 69 7® 71 72 73 74"; CHR$ (®); CHR$ (9) ;"Der
Stein auf Feld 38 wird auf Feld 68 (HOCH)"
PRINT ''57 58 59 60 61 62 63"; CHR$ (9); CHR$
(9);"gesetzt und der übersprungende Stein (Feld 49)"
65
685
699
695
709
705
719
715
720
725
730
735
740
745
758
755
760
765
779
775
789
785
799
795
800
805
819
815
820
825
830
835
840
845
850
855
860
865
870
875
8830
885
899
895
999
905
918
915
920
925
939
935
949
945
PRINT "46 47 48 49 50 51 52"; CHR$ (®); CHR$
(9) ;"entfernt."
950 VTAB 11: HTAB 13: PRINT "Datenübergabe": FOR I = 1 TO
31:B(I) = PEEK (33631 + I):C(I) = PEEK (33663 + I):
NEXT I
955 IF P2 = 1 THEN GOTO 619
968 Y = 256 * PEEK (251) + PEEK (252):X = 31: GOTO 56®
IF B(X) = 2 THEN D = C(X) - 22: RETURN
IF B(X) = 3 THEN D = C(X) - 2: RETURN
D = C(X) + 22: RETURN
GOSUB 748: PRINT X;". ":D;" / ":DS(B(X));" I";
l: IF L< > 4 THEN GOTO 775
L = 08:X = X + 1: PRINT CHR$ (9);:
PRINT "* "-
GOSUB 740: PRINT X;".
PRINT " 37 38 39"
PRINT " 26 27 28": PRINT
GOSUB 8ß®: PR# ®: POKE 35,24: IF Pl = 1 THEN GOTO 71®
GOTO 205
VTAB 19: POKE 35,5:L = ®: PR# 1: IF U = 1 THEN GOTO
615
PRINT CHR$ (13) ;"Lösung: "
PRINT CHR$ (27);"D"; CHR$ (1); CHR$ (21); CHR$ (41); 1
CHR$ (61); CHR$ (81); CHR$ (P) 2
GOSUB 789 3
FOR X = 1 TO 39: PRINT CHR$ (9);: IF X < 19 THEN 4
PRINT " ";: GOTO 769 5
GOTO 769 6
IF B(X) = 1 THEN D = C(X) + 2: RETURN 7
8
9
u
rm &
:L=L+
IF X < 18 THEN
";D;" / ";D$(B(X)); CHR$ (9)
NEXT X: GOSUB 740: PRINT CHR$ (9);X;". ";D;" /
":D$(B(X)): GOSUB 800: GOSUB 785: PR# ®: TEXT : HOME :
END
PRINT CHR$ (27);"R"; CHR$ (®);: RETURN : REM
USA Character-Mode ein
PRINT CHR$ (27);"R"; CHR$ (2);: RETURN : REM
BRD Character-Mode ein
PRINT CHR$ (27);"-"; CHR$ (1);: RETURN : REM
Underline-Mode ein
PRINT CHR$ (27);"-"; CHR$ (®);: RETURN : REM
Underline-Mode aus
PRINT CHR$ (14);: FOR I = 1 TO 48: PRINT "-";: NEXT I:
PRINT : PRINT : RETURN : REM Zeilenabgrenzung
REM -—-----—---—-
REM Spielstandabspeicherung
REM --------—--- -- -- --- -.-. —.—.
PRINT : PRINT CHR$ (4);"OPEN SOLITAIRE.SPIELSTAND":
PRINT CHR$ (4);"WRITE SOLITAIRE.SPIELSTAND": PRINT X:
PRINT Y: FOR J = 1 TO X: PRINT B(J): PRINT C(J): NEXT
J: PRINT CHR$ (4);"CLOSE SOLITAIRE.SPIELSTAND": TEXT :
HOME : END
PRINT : PRINT CHR$ (4) ;"OPEN SOLITAIRE.SPIELSTAND":
PRINT CHR$ (4); "READ SOLITAIRE.SPIELSTAND'": INPUT X,Y:
FOR J = 1 TO X: INPUT B(J),C(J): NEXT J: PRINT CHR$
(4) ;"CLOSE SOLITAIRE.SPIELSTAND":U = 1: GOTO 535
REM ——
REM Menü
REM ———
INVERSE : PRINT "-—-----—----- --
SOLITAIRE von Stefan Maas 25.19.84
-=----- '": NORMAL
PRINT "Lösungsmöglichkeiten:": PRINT : HTAB 3: PRINT
"(]) schnelle Lösung (Ausführungsdauer": HTAB 7: PRINT
"ca. 41 Sekunden, ohne Grafik)": PRINT
HTAB 3: PRINT "(2) langsame Lösung (Ausführungsdauer":
HTAB 7: PRINT "ca. 14,5 Stunden, mit Grafik)": PRINT
PRINT "Auagabe der gefundenen Lösungen:": PRINT : HTAB
3: PRINT "(3) auf Drucker";: HTAB 22: PRINT "(4) auf
Bildschirm": PRINT
PRINT "Programmstart:": PRINT : HTAB 3: PRINT "(5)
Neustart": HTAB 3: PRINT "(6) unterbrochene Partie neu
starten"
POKE 1795,49: POKE 1835,51:
1:P3 =1
VTAB 24: HTAB 1: PRINT "Wähle 1-6 (RETURN <=> Start):";
GET P$: IF ASC (P$) = 13 AND Pl = 2 THEN GOTO 489
IF ASC (P$) = 13 THEN GOTO 945
IF ASC (P$) < 49 OR ASC (P$) > 54 THEN GOTO 875
POKE 1363,55:Pl = 1:P2 =
P = VAL (P$): ON P GOTO 900,905,919,915,929,925
POKE 1795,49: POKE 1195,178:Pl = 1: GOTO 929
POKE 1195,50: POKE 1795,177:Pl = 2: GOTO 88®
POKE 1835,51: POKE 1854,180:P2 = 1: GOTO 889
POKE 1854,52: POKE 1835,179:P2 = 2: GOTO 889
POKE 1363,53: POKE 1491,182:P3 = 1: GOTO 889
POKE 1491,54: POKE 1363,181:P3 = 2: GOTO 985
REM -------—--------—- -—-
REM Binärfilesteuerung
REM ------—--- - --- - -. —.
HOME : HTAB 4: PRINT "SOLITAIRE-Binärfile wird
geladen": PRINT CHR$ (4) ;'"BLOAD SOLITAIRE.B": VTAB 5:
HTAB 9: PRINT "Lösungssuche gestartet": PRINT : HTAB 2:
PRINT "(Lösung bei Klinkelzeichen gefunden)": CALL
32768
: A9 B0 16
: 85 FD 17
: 85 FC 18
: 85 FB 19
: A2 78 20
OA 21
: 9D BP 22
: D® FA 28
: A9 @l 24
: BC 20 25
: 99 90 26
: E8 27
: E® 20 28
: FO 23 29
: 20: 12
SOLITAIRE.B
ak ak ak ak ak ak ak a aka a aka ak aaa aka
* SOLITAIRE - St. Maas, 25.19.84 x
RR
ORG
POINTERl EQU
POINTER2 EQU
POINTER3 EQU
VERSL EQU
VERSH EQU
SPIEL EQU
$8009
$FF
$FE
$FD
$FC
$FB
$8309
Berk
* Spielfelddefinierung *
ED a a a ne
START LDA
STA
STA
STA
LDX
DEX
STA
BNE
LDA
LDY
STA
INX
CPX
BEQ
JMP
HEX
+09
POINTER3
VERSL
VERSH
+12
SPIEL1
SPIEL,X
SPIELl
+91
FELD,X
SPIEL,Y
SPIEL2
#32
TEST
SPIEL2
lA 1B 1A1lB1C2526272ERF
ı 25 26
: 30 31
: 35 54
: SD 3E
ı 44 45
49 4A
. 52 53
HEX 3931323334393A3B
HEX 3D3E3F4445464748
HEX 494A5152535C5D5E
rer
* Ausführung der Züge *
* 1,2,3,4 = 1.,0o.,r.,u. Bewegung *
a a a ee
TEST LDY #25
STY POINTER1
LDY POINTER1
INY
STY
EPY
BNE
JMP
LDA
TESTI
POINTER1
#95
TESTI1A
TESTNEG
SPIEL,Y
BEQ TESTI
STY POINTER1
ea a a a 2 5
* Bewegung nach links *
a a a a a a 2 225
FF LINKS LDY POINTERl
DEY
FE STY
11) LDA
23 BEQ
DEY
D0 LDA
1D BNE
2C CPY
19 BEQ
2D CPY
15 BEQ
37 CPY
1l BEQ
38 CPY
OD BEQ
42 CPY
09 BEQ
43 CPY
05 BEQ
01 LDX
lE 81 74 JSR
TESTIA
POINTER2
SPIEL, Y
OBEN
SPIEL,Y
OBEN
=44
OBEN
#45
OBEN
#55
OBEN
#56
OBEN
#66
OBEN
+67
OBEN
#01
TEST2
Peeker 6/85
RR a a a a a ne en
* Bewegung nach oben * * Zusatzauswertung der Versuche x&
ET ee a a
OBEN LDA POINTER1 ! TEST2 CPY #24
CLC ; BEQ TEST3
ADC #11 i CPY #25
TAY : BEQ TEST3
STA POINTER2 : CPY #29
LDA SPIEL,Y : BEQ TEST3
BEQ RECHTS 4 CPY #39
LDA POINTER2 : BEQ TEST3
CLC ; CPY #35
ADC #11 \ BEQ TEST3
TAY 5 CPY #36
LDA SPIEL,Y : BEQ TEST3
BNE RECHTS : CPY #40
CPY #193 ; BEQ TEST3
BEQ RECHTS / CPY #41
CPY #194 > BEQ TEST3
BEQ RECHTS : CPY +79
CPY #185 , BEQ TEST3
BEQ RECHTS | CPY +89
CPY #114 ; BEQ TEST3
BEQ RECHTS \ CPY #84
CPY #115 : BEQ TEST3
BEQ RECHTS a CPY #85
CPY #116 ‘ BEQ TEST3
BEQ RECHTS ; CPY #99
LDX #92 : BEQ TEST3
JSR TEST2 ; CPY #91
a ee 7 x BEQ TEST3
* Bewegung nach rechts «* : CPY +95
a a a a ee 7 : BEQ TEST3
RECHTS LDY POINTERLl i CPY #96
INY $ BEQ TEST3
STY POINTER2 i JMP TEST4
LDA SPIEL,Y € TEST3 RTS
BEQ UNTEN ES ee
INY * Ausführung von Zügen *
LDA SPIEL,Y Een
BNE UNTEN ; TEST4 INC VERSL
CPY #53 > BNE VERSI1
BEQ UNTEN > INC VERSH
CPY #54 : PLA
BEQ UNTEN : PLA
CPY #64 { INC POINTER3
BEQ UNTEN > TXA
CPY #65 : LDX POINTER3
BEQ UNTEN ; STA $835F,X
CPY #75 ; TYA
BEQ UNTEN - STA $837F,X
CPY #76 ; LDA #01
BEQ UNTEN : STA SPIEL,Y
LDX #93 : LDA #9®
JSR TEST2 i LDY POINTER1
Eee 7 : STA SPIEL,Y
* Bewegung nach unten * : LDY POINTER2
a ee ; STA SPIEL,Y
UNTEN LDA POINTERIl : CPX #31
SEC € BEQ ENDE
SBC #11 n JMP TEST
TAY { LDA $833C
STA POINTER2 a BNE ENDEIl
LDA SPIEL,Y : JMP TEST
BEQ TESTI1 £ ENDEl JSR $FBDD
LDA POINTER2 N RTS
SEC RR
SBC #11 * Rücknahme von Zügen *
TAY ea a a ee ee en
LDA SPIEL,Y t TESTNEG LDY POINTER3
BNE TESTI1 3 LDA $835F,Y
146 CPY #4 ; LDX $837F,Y
147 BEQ TESTI1 ; CMP #@1
148 CPY #5 ı BEQ TESTNEGI
149 BEQ TESTI1 : CMP #92
159 CPY #6 . BEQ TESTNEG2
151 BEQ TESTI1 t CMP #93
152 CPY #15 : BEQ TESTNEG3
153 BEQ TESTI1 : LDA #98
154 CPY #16 : STA SPIEL,X
155 BEQ TESTI1 : TXA
156 CPY #17 : CLC
157 BEQ TESTI1 s ADC #11
158 LDX #94 > TAX
lE 81 159 JSR TEST2 - LDA #91
44 80 160 TESTI1 JMP TESTI : STA SPIEL,X
Peeker 6/85 67
EEE
ar
Oo
>
eb)
Pr)
2)
o)
£
o))
Oo
we
Pa)
&
X
m
[ee]
BE
4p}
en
N
N
N
S
pw
R-
(0
Pr]
>
O
x
N
22
cd
u II STW ST-Jolal-lg
#11
#01
SPIEL,X
POINTER3
POINTER1
TEST1
#09
SPIEL,X
+01
TESTNEG1l
SPIEL,X
SPIEL,X
POINTER3
POINTER]
OBEN
#09
SPIEL,X
TESTNEG2
#11
+01
SPIEL,X
Texas Software Cassetten. Lerne BASIC-1-9 u. 5 versch. Spiele.
2 Cassetten. DM 9,90
ATARI-Sensorkeyboard. Matrix. Tasten frei belegbar.
Ausgeprägte Tasten f. sichere Eingabe. 61 Tasten.
BN 93185 DM 9,80
ASC Il-Keyboards evtl. können einige Tasten fehlen.
= . u 2 gleiche Keyboards.
us 2 mach 1.
DM 24,90
DM 45,—
BN 93190
BN 93191
DM 5,90
DM 7,90
2x ASCII
4 Stück nur
2x3 Amp. Computer Netzfilter
BN 93192
2x2 Amp. aber mit Kalgeräte-Steckdose
BN 93194
ASCII-Keyboards
mit
Gehäuse
ASCII-
Standard
I Tastatur Apple
Problemloser Anschluß. Volle Garantie
mit Anschluß manual. Pultgehäuse. Industrieware.
BN 93077
Dieselbe Tastatur mit 10er Block u. Cursor. D M 98,
BN 93078 DM 1 39 Ba
Tastatur wie BN 93078 ohne Gehäuse
Der Massenspeicher 1 M-Byte
Mit Anschlußanleitung für Apple-Computer.
1 Mega-B Doppelkopf. Standard Shugart BUS.
Qualitätslaufwerke eines bekannten Japanischen
dendienst über unsere Organisation.
Minimaße nur 150 x 100 x H 40 mm.
u. NDR Computer fähig.
Kabel mit 26-pol. Stecker. Processor AMI 8207 Stromvers. +5 V.
Processor AMI 8021.
BN 93079 DM 89,90
3”-Mini-Floppy-Laufwerk. 2 x 80 = 160 Track.
Herstellers. Guß-Chassis. 1 Jahr Garantie. Kun-
BN 65 163 1 M-BYTE-KAPAZ. DM 598, —
8lF5: E9
8lF7: AA
8lF8: A9
8lFA: 9D
8lFD: C6
8SlFF: 86
8201: AC
8204: A9
8206: 9D
8209: A9
820B: CA
820C: 9D
S2ÖF: CA
8210: 9D
8213: C6
8215: 86
8217: 4C
538 Bytes
Tabelle 1:
92
8l
68 69 79
57 58 59
46 47 48
93
82
TL
6%
49
#11
#01
SPIEL,X
POINTER3
POINTER1
RECHTS
+00
SPIEL,X
#01
TESTNEG3
SPIEL,X
SPIEL,X
POINTER3
POINTER1
UNTEN
Brettkodierung
94 Zugbeispiel:
83
12 73 74
61 62 63
50 51 52
38 / HOCH bedeutet:
Der Stein auf Feld 38 wird auf Feld
37 358 39
26 27 28
Graphic Computer Mouse
Graphic-Designer Apple compatible.
Erstellt Zeichnungen und Graphicen einfach
und schnell. Direkt auf den Bildschirm.
Gute Auflösung. Viele Funktionen bereits
programmiert wie Frame/Line/Circle/Ellype/Fill/
Prints u. viel, viel mehr. Komfortable Menu-
Steuerung. Anschluß über Game IO Port.
Lieferung mit Kabel, Software 5 4" Discette
und Anleitung.
BN 65 156 DM 189, —
Unser Kundendienst in Baden-Baden
und Karlsruhe kann alles reparieren.
Wir verfügen über alle Ersatzteile.
Paßt an jeden Apple und ähnliche
Lautloses 54” Floppy-Laufwerk völlig narrensicher.
Hochwertigste jap. Mechanik. Elektronik garantiert
ohne Ausfälle. Wir geben gerne 1 Jahr Garantie
auf diese Qualität. Slim Line.
Jap. Spitzentechnologie.
BN 65147 Geräuschloses 54"
BN 65148 Pass. Slim Line Geh.
BN 65011 Disc Drive Card DM 119, —
Blitzpreis! Japan-Qualität
5Y4”/Apple compatible Anschlußkabel
Apple fähiges Floppy. Slim Line. Metall-Gehäuse.
1 Jahr Vollgarantie. Sofort anschließbar.
Einfach nur am Apple einstecken.
BN 65 151 DM 399,90
DM 448,—
DM 38,—
Original Data Magnetics US-Qualität 54”
100% Errorfree. Jede defekte Discette tauschen wir gegen 2 neue
5 Jahre Garantie auf dieses Material.
DMı1S SS-SD
BN 65152
BIVEEDEEESTEB]B
BN 65 153
DM2D DS-DD
BN 65 154
Hochwertige Interface-Leerplatine
für Apple u.ä.
Epoxy oder glasfaserverstärktes Material. Bereits gebohrt.
65164 64 K Motherboard 89,— 65171 Eprom Writer
Dual-Processor 65172 PAL/VIDEO/Modul.
65165 Z-80 65173 128 K
65166 80 Zeichen/Soft 65174 Mikro Buffer
65167 Serial/RS 232 65175 Buffer Printer
65168 Parallel/8 Bit 65176 Super Serial
65169 16 KRAM 65177 wD
65170 6522 65178 Micro Modem
10er Pack
10er Pack
10er Pack
19,50
19,50
15,90
15,90
19,50
15,90
DM 383,—
D] 1 Re} Pu
D] 1) nn
n
19,50
19,50
29,50
19,90
25,80
19,90
19,50
29,50
60 (HOCH)
gene Stein (Feld 49) entfernt.
Soft und Zubehör
5 Stück Comp. Cassetten.
10 Min. Tonbandspulen
BN 65045
5 Stuck Comp. Cassetten.
15 Min. ohne Tonbandspulen
BN 65046 DM 6,90
5 Stück Discettenbox 5'/4" für je 5 Discetten farbig.
BN 65112 DM 12,90
5Y.a" Discetten Bibliothek für 10 Discetten Kunststoff
BN 65057 DM 8,90
51/4” Discetten Bibliothek für 15 Discetten Kunststoff
BN 65130 DM 19,80
51" Discetten Bibliothek fur 50 Discetten Kunststoff
BN 65110 DM 28,50
51%" Discetten Bibliothek
für 100 Discetten Kunststoff a
BN 65049
DM9,95
M 49,80
Disc Doubler (Notcher)
macht aus einer SS eine DS 54"
BN 65143
*Microswitch.
Standard ASCIlI Parallel.
Halltastatur/Cursor/Viele Funktions-
tasten/+5 V/-12 V
BN 92272 Apple u.a DM 178, —
Der SUPERKNÜPPEL FÜR APPLE
und kompatible. VG-071.
Joystick der edelsten Sorte.
Leichtgängiger Kreuzknüppel mit automatischer |
Nullpunkt-Rückstellung. Spezielle Trimmregler
zur genauen Einpegelung für jeden Kanal
2 Abschußknöpfe. Rutschfeste Gummifüße.
Flexibles Anschlußkabel 1,60 m lang.
Komplett mit Stecker, sofort betriebsbereit.
Metallgehäuse.
BN 65056 VG-071 DM 49,90
Original TEAC 55 F. Double Density. 2 x 80 Track.
BN 65179 DM 598, —
300 Band Modem CCITTV. 21
Postgenehmigt mit FTZ. Anschluß an alle Computer
mit V 24 Schnittstelle. Schnittstellenstecker. Vollduplex.
Answer- und Originalmodus. Autom. Kanalwahl.
Made in Germany.
BN 65180
Neue Discetten-Boxen
Karussell-Box für 64 Discetten 5%”.
Bequemer Zugriff. Stapelbar oder mit
Wandhalterung. ® 320 x H 200 mm.
BN 65 155
Jetzt 3,5” Discetten-Box für
50 Stück 3,5” Discetten
Klappbox mit Sortiereinrichtung.
BN 65146
DM 14,90
DM 59,80
DM 29,50
Bühler Elektronik, Postfach 32, 7570 Baden-Baden, Tel. (07221) 3487
68
gesetzt und der Be '
Teilzahlung ab DM 300,- (ohne Zinsen)
A-Tger: Tel .dtlsTe m ig-T
Se slat- 1A -TEF-Tıle
DM 298,— NG)
Peeker 6/85
Leserbriefe
Garbage Collection bei TASC
Zuerst möchte ich mich für die Ver-
öffentlichung dieser wirklich inter-
essanten Routine bedanken, durch
welche es möglich ist, die meiner
Meinung nach größte Schwach-
stelle des Applesoft-Interpreters
auf einfache und sichere Art zu
umgehen.
Des weiteren möchte ich nun an-
fragen, ob die Möglichkeit besteht,
diese Routine auch auf mit TASC
2.0 compilierte Programme anzu-
wenden, und welche Modifikatio-
nen hierzu notwendig sind.
Kurt Lutsch, Esslingen-Zell
Diese Frage wurde uns sehr häufig
gestellt. Das FRE-Programm aus
Peeker 1/2, 1985, läuft jedoch
nicht beim TASC, weil dieser ganz
andere String-Pointer als Applesoft
benutzt. So steht beispielsweise
das Länge-Byte vor dem String
selbst und nicht beim Pointer wie
in Applesoft. Es wäre deshalb er-
forderlich, das FRE-Programm völ-
lig umzuschreiben. Übrigens,
wenn man die RUNTIME von
TASC 2.0 mit BLOAD RUNTIME,
A$0806 einlädt, so befindet sich
der TASC-eigene FRE-Befehl ab
$0F16 im Speicher. us
RAMDISK.LC-Bug
Mein RAMDISK.LC-Programm
enthielt leider einen unerfreulichen
Bug. Es springt von der LC zu-
nächst nach $0100 in den Stack,
um dort die LC abzuschalten. Den
Stack wählte ich, weil die unteren
48K, z.B. ab $0300 o.ä., unberührt
bleiben sollten. Bei Applesoft- und
Binärfiles war noch alles in Ord-
nung. Wenn jedoch Zahlen-Text-
files mit „FORX = 1 TON: PRINT
Z (X): NEXT" gespeichert werden
sollten, passierte folgendes: Jede
einzelne Zahl Z (X) wird vom Ap-
plesoft-Interpreter in einen ASCII-
String konvertiert, der zunächst ab
$0100 abgelegt wird. Diese ASCII-
Strings werden nach und nach in
den I/O-Puffer z.B. ab $9600 über-
tragen. Wenn dieser Puffer voll ist,
greift die RWTS und folglich auch
der RAM-Disk-Driver ein, der den
Bereich ab $0100 wegen des ge-
nannten Rücksprungs modifiziert.
Und genau diese geänderten
Bytes werden dann als Zahl auf
den RAM-Disk-Sektor geschrie-
ben, und zwar dann, wenn eine
Zahl zwei Sektoren überlappt (z.B.
die ersten 3 Ziffern am Ende des
vorangehenden und die letzten 3
Ziffern am Anfang des nachfolgen-
Peeker 6/85
den Sektors). Statt $0100 kann
man z.B. $0110 als Rücksprung
wählen, womit der Bug beseitigt
wird. Es ist dann wie folgt zu pat-
chen:
BLOAD RAMDISKLC
CALL -151
63CC: 10
63D4: 13
63D7: 10
63E9: 10
Ctrl-C
BSAVE RAMDISK.LC, A24861,
L739
Die nachfolgenden Leserbriefe be-
ziehen sich auf diesen Bug. Man
beachte die geniale Lösung von
Herrn Kociemba, die jedoch nur
auf dem Apple II Plus und dem
momentanen Ile funktioniert, nicht
jedoch auf dem Apple Ilc sowie
auch nicht auf dem Apple Ile mit
den neuen ROMs, weil sich $40 =
Opcode für RTI bei $FFFE befin-
den muß:
Als Leser, der Ihre Zeitschrift von
Anfang an regelmäßig liest, möch-
te ich nach der Mai-Ausgabe nun
auch eine kleine Kritik anbringen.
Zum RAM-Disk-Driver-Artikel
möchte ich fragen, warum der Um-
weg über Stackbereich oder eine
158,- DM teure Interface-Karte ge-
nommen werden muß. Es wäre
doch theoretisch denkbar, die
Routine zur Übertragung von
„oben“ nach „unten“ parallel im
Hauptspeicher und im Zusatzspei-
cher unterzubringen, so daß der
Prozessor nach dem Umschalten
die Routine im RAM auf der 64K-
Karte weiter abarbeiten kann. Eine
derartige Methode hätte zwar den
Nachteil, daß etwas mehr Speicher
für das Programm gebraucht wird,
wäre aber eleganter als eine Zer-
störung des Stacks oder der Ge-
brauch einer teuren Zusatzkarte.
Ihre Ankündigung 4 weiterer Pro-
gramme für diese Karte läßt mich
einen Test dieser Karte fordern.
H.-D. Siewert, Lippstadt
Mit Interesse habe ich Ihren Artikel
über die „Poor Man’s RAM-Disk“
gelesen. Sie schreiben, daß es
nicht möglich ist, die Language
Card von der Language Card aus
zu desaktivieren. Mit einem klei-
nen Programmiertrick ist dies je-
doch immer problemlos möglich,
wobei das Programm jedoch von
der Art des verwendeten ROMs
abhängen kann.
Das hier beschriebene Programm
funktioniert mit dem Autostart
ROM, das wohl bei der überwie-
genden Mehrzahl aller Apple ver-
wendet wird, und beruht aus-
schließlich auf der Tatsache, daß
der IRQ-Vektor dieses ROMs auf
die Routine $FA40 zeigt. Dabei
sind die Zeilen 471 bis 513 des
von Ihnen beschriebenen RAM-
Disk-Drivers durch folgende Zeilen
zu ersetzen:
WEITER
EXIT1
EQU $BD06
JSR ZEROLOAD
LDA /WEITER
PHA
LDA #WEITER
PHA
PHP
JMP LCOFF
JSR ZEROLOAD
TSX
PHP
INX
INC STACK,X
BNE LCOFF
INX
INC
INC STACK,X
JMP LCOFF
ZEROLOADLDX #3
ZEROL1 LDA ZERO,X
STA RAM,X
DEX
BPL ZEROL1
LOY =2
RTS
DFS $7
LCOFF BIT $BIT $C082
Herbert Kociemba, Darmstadt
EXIT2
Es geht auch anders
Äußerst zuvorkommend war der
Service der Firma Erphi-Elektronik,
die nicht nur vollkommen kosten-
los das EPROM meines Erphi-
Controllers gegen einen neueren
Stand austauschte, sondern auch
gegen einen niedrigen Betrag
mein eigenes 2 x 80 Track Philips-
Laufwerk für Apple-Standard mo-
difizierte.
Sowohl mit Laufwerk und speziell
mit dem Controller bin ich mehr als
zufrieden!
Leider gibt es auch Firmen mit an-
derer Geschäftsauffassung — be-
sonders nach Verkauf der Pro-
dukte.
Es würde mich freuen, wenn die-
ser Brief veröffentlicht würde. Ich
habe Hoffnung, daß derartiges
Aufzeigen von sehr positiver Kun-
denbetreuung auch andere Her-
steller/Händler zu ähnlichem Ver-
halten animiert.
Udo W.Völker, Essen
PLOT.2.O
Im Programm PLOT.2.0O in Peeker
5/85 auf Seite 17 haben sich leider
zwei Fehler eingeschlichen:
3940 GOSUB 4700: IF A$ = "N"
THEN 3910
Leserbriefe 9.4
5400 CALL AS%: F$ = “Y=
GOSUB 2
Außerdem könnte man den EXEC-
File weglassen, wenn man Zeile
5610 folgendermaßen ändert:
5610 POKE 103,1: POKE 16384,0:
PRINT CHR$(4) “RUN PLOT.2.0“.
Alois Strobel, Forbach
Vielen Dank für die Korrektur.
„GOSUB 1010“ geht „auf unsere
Kappe“, da wir u.a. die ersten Zei-
len umgeschrieben haben, weil
man sonst Zeile 2 nicht mehr ein-
geben könnte. us
DOSinLC
Obwohl mir Peeker sonst ganz gut
gefällt, finde ich es nicht gut, daß
angekündigte Beiträge nicht ge-
druckt werden, wie z.B. die As-
sembler-Einführung oder das 1-
Drive-Kopierprogramm, und daß
Serien sehr weit auseinandergezo-
gen werden und nicht in aufeinan-
derfolgenden Ausgaben erschei-
nen (siehe Graf-quattro). Übri-
gens: Einen Artikel über das Ver-
schieben des DOS in die LC finde
ich wünschenswert.
Torsten Wolf, Bochum
SCREEN 80
Ich habe seit ein paar Wochen Zu-
gang zu einem Apple IIc-System
mit externer Floppy und Imagewri-
ter. Weiterhin lese ich seit ein paar
Monaten die Peeker-Hefte.
Nun verfüge ich zwar über Grund-
kenntnisse in BASIC, habe aber
leider keine Ahnung und äußerst
wenig Zeit, mir diese in Assem-
bler-Programmierung zu verschaf-
fen. Dennoch möchte ich aber die
in Peeker erscheinenden Program-
me in eigenen Programmen als
Utilities oder selbständig verwen-
den und einsetzen, da sie meist
die Sparten abdecken, die ich als
Nur-Anwender gut gebrauchen
kann. Wie gebe ich aber die mit
BASIC gemischten oder reinen
Assembler-Listings und Hex-
Dumps ein? — Kann ich die Pro-
gramme von Peeker-Disketten oh-
ne weiteres in eigene Programme
einbinden?
Als Beispiel sei die Hard-Copy-
Routine „SCREEN80“ aus Peeker
4/85 gewählt. Ich tippte das Pro-
gramm laut Listing ein — keine Re-
aktion nach Starten durch RUN
oder CALL 768. — Wie muß ich
vorgehen? — Wie kann ich feststel-
len, bis zu welcher Adresse mein
BASIC-Programm geht und wo ich
dann SCREEN80O anhängen oder
vom BASIC-Programm aufrufen
kann.
Michael Tarnowski, Wiesbaden
Wenn man SCREEN80 mit CALL
69
768 startet, muß der Drucker be-
reits eingeschaltet sein (grüne
„POWER“-Taste leuchtet). Wenn
der Drucker ausgeschaltet ist, war-
tet SCREEN80 „ewig“, bis man
ihn einschaltet. Dann hilft nur noch
entweder Drucker einschalten
oder Reset drücken. Da
SCREEN80 für Drucker aller Art
geschrieben wurde, kann die
Druckbereitschaft nicht geprüft
werden.us
Wie gibt man Maschinenpro-
gramme ein?
Könnten Sie vielleicht einmal exakt
erklären, wie man Programme (wie
in Heft 5/85, S.50 INALL = Ma-
schinenprogramm) in den Rechner
eingibt?! Genaue Vorgehensweise
beim Eintippen solcher Maschi-
nenprogramme!
Roland Sieling, Voerde
AUGE und Peeker
Im Peeker, 4/85, S. 7, hatte ich
geschrieben: „Die einschlägigen
Treffen der AUGE usw. dienen
meist weniger dem Erfahrungs- als
vielmehr dem Programmaus-
tausch, wobei die kopiergeschütz-
ten Programme mittels Kopien der
kopiergeschützten Kopierpro-
gramme kopiert werden“. Diese
Aussage beruht auf meiner Erfah-
rung mit einer Regionalgruppe, wo
ich einmal vor einem guten Jahr 12
Apples mit „Nibble Away“,
„Locksmith“ usw. in Aktion zählte,
ferner auf telefonischen und
schriftlichen Angaben von Peeker-
Lesern und letztlich auch aufgrund
von Mitteilungen im AUGE-Maga-
zin selbst (zuletzt im Mai-Heft, S.
8: „Dann kam das Gespräch wie-
der auf die Regionalgruppen, wo
es (Schilderung eines RG-Leiters)
so aussieht: Mehrere Mitglieder
bilden riesige Trauben um die 2-3
vorhandenen Computer, um kom-
merzielle Software zu kopieren“).
Es wäre falsch zu sagen, daß alle
Regionalgruppen sich diesbezüg-
lich betätigen. Es wäre aber umge-
kehrt ebenso falsch zu sagen, daß
gar keine Regionalgruppe sich
diesbezüglich betätigt. Es gibt Re-
gionalgruppen, die von vornherein
das Kopieren von Fremdprogram-
men untersagt und damit Schwarz-
kopierern einen Riegel vorgescho-
ben haben. Eine solche vorbildli-
che Regionalgruppe ist beispiels-
weise diejenige vom Großraum
Kassel, wie aus dem nachfolgen-
den, aus Platzgründen gekürzten
Leserbrief hervorgeht. Ich würde
mich freuen, wenn alle Regional-
gruppen so wären, und verzichte
deshalb auch darauf, einen Leser-
brief, der eine genau diametral ent-
gegengesetzte Regionalgruppe
schildert, abzudrucken, da ich mir
von einer positiven Darstellung ei-
nen positiven Nachahmungseffekt
verspreche. Zudem würde ich der
AUGE empfehlen, in die Satzung
einen Passus aufzunehmen, der
Schwarzkopierer aus dem Verein
ausschließt. Danach würde eine
Selbstreinigung stattfinden und
das Gerücht von einem „Kopier-
verein“ ein für allemal aus der Welt
geschafft. Nunmehr der Leser-
brief:
In Ihrem Artikel über „Software
und Kopierrecht“, Heft 4/85, Seite
7, degradieren Sie, Herr Stiehl, die
AUGE zu einem „Kopierverein“.
Ich bin seit Mitte 1981 Regionallei-
ter der AUGE im Großraum Kassel
gewesen, und ich versichere hier-
mit, daß auf keinem einzigen von
Wie gibt man Maschinenprogramme ein?
Nicht jeder versteht sich in der
Kunst der Maschinensprache. Die
im Peeker veröffentlichten Assem-
blerprogramme sind dennoch auch
für den nützlich, der nicht über die
Kenntnis von Bits und Bytes im
Computer verfügt. Wir wollen da-
her im folgenden erläutern, wie
Maschinenprogramme eingege-
ben, gespeichert und aufgerufen
werden.
Die Eingabe
Zur Eingabe von Hexadezimal-
Zahlen bedient man sich am be-
sten des System-Monitors, der aus
Applesoft durch CALL -151 akti-
viert wird. Es erscheint dann an-
statt des gewohnten Promptzei-
chens „U“ oder „]“ der Stern „x“.
Will man nun einen Hexdump ein-
geben, so tippt man zunächst die
erste Adresse ohne „$“, gefolgt
von einem Doppelpunkt (alle Wer-
te werden im Monitor stets hexa-
dezimal angegeben). Die folgen-
den Hex-Zahlen werden nun, je-
weils durch ein Leerzeichen ge-
trennt, nacheinander eingegeben
(kein Leerzeichen zwischen Dop-
pelpunkt und erster Zahl), wobei
nicht nach jeweils 8 Bytes die
Adresse neu eingegeben werden
muß (wie im Hexdump ausge-
druckt), sondern bis zu ca. 80 Hex-
70
Zahlen getippt werden können, be-
vor die Return-Taste betätigt wer-
den muß. Um weitere Zahlen ein-
zugeben, genügt es nun, wieder
einen Doppelpunkt einzugeben
und die nächste Zahlenkolonne
einzutippen. So verfährt man, bis
alle Bytes eingegeben sind.
Assemblerlistings
Wurde nur ein Assemblerlisting
abgedruckt, so verfährt man hier-
bei analog, wobei nun alle diejeni-
gen Bytes eingegeben werden
müssen, die rechts von dem Dop-
pelpunkt der Adresse und der fort-
laufenden Zeilennummer des Li-
stings stehen. Das kurze Assem-
blerlisting
0300: A9 BO 1 LDA #0"
0302: 20 ED FD 2 JSR COUT
wird durch folgende Zeile einge-
geben:
300:A9 BO 20 EDFD <RET>.
Nachprüfen und Korrigieren
Zuweilen möchte man die einge-
gebenen Zahlen nachprüfen. Dazu
gibt man die Anfangsadresse des
gewünschten Bereichs, einen
Punkt und dann die Endadresse
des zu listenden Bereichs ein, ge-
folgt von Return (z.B. „300.345
<RET>"). Es erscheint dann eine
Liste der gespeicherten Bytes, wie
sie in den Hexdumps ausgedruckt
ist.
Hat man einen Fehler entdeckt, so
kann ein einzelnes Byte durch
„<Adresse>:<Byte>" über-
schrieben werden. Achtung: Steht
das Byte nicht am linken Rand, so
muß die tatsächliche Adresse vom
Rand her abgezählt werden. Ist
z.B. in der Zeile
0308- 00 01 03 03 04 05 06 07
das dritte Byte falsch, so wird es
durch
30A:02 <RET>
überschrieben. Durch Eingabe von
308.30F <RET>
wird dann die korrigierte Zeile an-
gezeigt:
0308- 00 01 02 03 04 05 06 07.
Hat man ein Byte zuviel oder zu-
wenig eingegeben, hilft fast nur
noch ein erneutes Eintippen ab der
fehlerhaften Stelle.
Abspeichern
Bevor nun der erste Probelauf er-
folgt, sollte das Programm zu-
nächst abgespeichert werden.
Hierzu tippt man die Kopfzeile des
Hexdumps ein (z. B. „BSAVE
PROGRAMM, A$300, L$AB
<REI>") oder allgemein
„BSAVE <Name>, A$<Start>,
L$<Länge>". Dabei ist <Start>
die erste Adresse des Programms
(hexadezimal) und <Länge> die
Anzahl von Speicherstellen, die es
belegt. Die Länge kann bei Listings
der letzten Zeile entnommen wer-
den. „171 Bytes“ steht z.B. für
dezimal 171 Bytes (hexadezimal
$AB Bytes); soll der dezimale Wert
angegeben werden, so muß das
Dollarzeichen bei der Länge-Anga-
be entfallen: „BSAVE PRO-
GRAMM, A$300, L171 <RET>“.
Laden und Aufrufen
Zum späteren Einladen des Pro-
gramms genügt die Eingabe
„BLOAD <Name>" oder, falls es
sofort ausgeführt werden soll,
„BRUN <Name>". Ein im Spei-
cher befindliches Programm startet
man im Monitor durch „<Start>
G“, wobei <Start> wieder für die
hexadezimale Startadresse des
Programms steht.
Hat man seine Arbeit im Monitor
beendet, so kommt man durch Ein-
gabe von Ctri-C <RET> wieder
nach Applesoft.
Peeker 6/85
mir geleiteten Treffen jemals ande-
re als selbsterstellte oder freigege-
bene Vereinssoftware kopiert wor-
den ist! Meine Regionalmitglieder
können durchweg bezeugen, daß
ich immer energisch gegen alle an-
deren Kopierversuche vorgegan-
gen bin und daß niemals der Ein-
satz eines Bit-Kopierers o.ä. ge-
duldet worden ist! Unsere Treffen
hatten immer Niveau und dienten —
abgesehen von ungeliebtem, aber
notwendigem Vereinskram — aus-
schließlich der Information und
Weiterbildung, der Weitergabe von
Erfahrungen, der Lösung von Pro-
blemen, die eigentlich Angelegen-
heit der Firma Apple gewesen wä-
re, und der Unterstützung von
Neulingen. Aus unserer Gruppe
entstand irgendwann dann die Re-
gionalgruppe Göttingen, der zum
größten Teil auch Lehrpersonal der
Universität angehört, und die sich,
wie ich mir vorstellen kann, sicher-
lich ebenso wie wir gegen Ihre un-
qualifizierte globale Behauptung
verwahren wird.
Wenn man allerdings die Seite 68
desselben Heftes aufschlägt, in
dem Sie regelrechte Rundum-
schläge in Richtung AUGE austei-
len, wird einiges klar: Sie selbst
sind ja ebenfalls AUGE-Mitglied,
und zwar ein ebenso engagiertes
wie ich. Einen Beweis dafür kann
ich vorlegen in Form einer erst-
klassigen „AUGE-Diskette“ über
das Grundthema „Assembler-Pro-
grammierung“, die Sie verfaßt ha-
ben und die in unserer Regional-
gruppe immer noch sehr geschätzt
wird. So fleißige und engagierte
Leute wie Sie stoßen in einer Ver-
einigung von inzwischen fast 5000
Mitgliedern allerdings zwangsläufig
irgendwann einmal auf Frust, und
Sie hatten offensichtlich Ihr größ-
tes Negativ-Erlebnis mit einem ru-
dimentären, schwachen und ziem-
lich kleinkarierten Vorstand der
AUGE, den Sie nun gleichsetzen
mit dem gesamten Verein! Sie
bringen unsere wirklich interes-
sierten und guten Mitglieder durch
Ihre Verhaltensweise in ein arges
Dilemma: Denn einerseits schät-
zen wir Ihre Zeitschrift vom sonsti-
gen fachlichen Inhalt her als eine
der zur Zeit besten auf dem Markt.
Dabei identifizieren wir uns zu ei-
nem Großteil insbesondere mit der
von Ihnen vertretenen kritischen
Haltung gegenüber dem Ge-
schäftsgebaren der Firma Apple,
von der wir als Einzelpersonen,
aber auch als AUGE-Mitglieder in
der Vergangenheit wahrhaftig nicht
verwöhnt worden sind. Anderer-
seits können wir nicht Peeker-
Leserbriefe 9,4
Abonnenten und AUGE-Mitglieder
gleichzeitig sein, wenn Sie eine Ih-
rer wichtigsten Aufgaben darin se-
hen, gegen uns Krieg zu führen!
Auch glauben wir, daß ja das „User
Magazin“ und der „Peeker“ nicht
um jeden Preis in „Konkurrenz“
zueinander stehen müssen.
Jürgen Heil, Volkmarsen
An Ear to the Ground
Nach jedem Peeker-Heft gehen so
viele Zuschriften ein, daß ich pro
Monat eine ganze Woche nur mit
Leserkorrespondenz befaßt bin. Es
ist mir ein besonderes Bedürfnis,
mich an dieser Stelle herzlich für
dieses „Feedback“ zu bedanken.
Grundsätzlich wird jedes Schrei-
ben von mir beantwortet, doch mö-
gen Sie bitte Verständnis dafür ha-
ben, daß es etwa 3 Wochen dauern
kann, bis Sie eine Antwort erhal-
ten. Aus Platzgründen kann ich nur
einen Bruchteil der Zuschriften in
Leserbriefe für den Peeker um-
münzen.
Für den Fall, daß es Sie interes-
siert, warum ein im April-Heft des
AUGE-Magazins veröffentlichter
Pro-Mac-Contra-Stiehl-Leserbrief
nicht im Peeker erschien, kann ich
nur kryptisch antworten, daß mir
vor einiger Zeit eine gewisse Com-
puterfirma unter Zeugen die Kopie
eines an den Peeker gerichteten
gewissen Pro-Mac-Leserbriefes
zeigte. Seit dieser Zeit reagiere ich
auf Pro-Mac-Leserbriefe aller-
gisch, denn Sie könnten ja mit ei-
ner gewissen Computerfirma be-
sprochen worden sein. Dies ist
doch wohl verständlich, oder
nicht?
U. Stiehl
Extended Graphic System
getestet von Dr.
Kehrel
Ohne Hilfsmittel ist die Program-
mierung von Apple-Shapes eine
sehr mühsame und fehleranfällige
Beschäftigung. Hier hilft Ihnen das
Extended Graphic System (DM
198,-, Firma Interface Age), das
trotz seines Namens aus Deutsch-
land kommt. Es dient zum Erzeu-
gen und Editieren der hochauflö-
senden Grafiken (HGR) sowie dem
Erstellen von Shapes und den aus
diesen bestehenden Tabellen. Sie
können im vergrößerten Maßstab
Ihre Figuren mit den Cursortasten
oder einem Joystick entwerfen,
drehen, in der Farbe variieren,
ganz so wie es Ihnen gefällt, aber
auch in der Originalgröße überprü-
fen. Ihr Produkt läßt sich auf Dis-
kette sichern oder mit anderen zu-
sammen in eine Vektorentabelle
einbinden. Auch aus fremden Ta-
bellen können Sie einzelne
Jürgen B.
Peeker 6/85
Shapes isolieren und abspeichern.
Extended Graphic System sorgt für
die Einhaltung aller Regeln und lie-
fert ohne weiteres Zutun komplette
Applesoft-Vektorentabellen, auf
die Sie dann aus Ihren eigenen
Basic- oder Maschinenprogram-
men zugreifen können. Ein De-
monstrationsprogramm führt eini-
ge Beispiele vor. Da alle Teile me-
nügesteuert ablaufen, werden Sie
die gut 40 Seiten der Bedienungs-
anleitung (mit übermäßig vielen
Zeichensetzungsfehlern) nicht
häufig zu Rate ziehen müssen.
Shapes aus beliebig vielen Tabel-
len können nacheinander geladen,
manipuliert sowie zu einem Bild
kombiniert werden. Ihr „Werk“ läßt
sich in 5 Größenstufen mit wählba-
rem Rand, auch mehrfach neben-
oder untereinander ausdrucken.
Das Dump-Programm ist abge-
stimmt auf EPSON-Drucker der
80er-Serie, ITOH 1550/8510A so-
wie kompatible Geräte.
... für APPLE und APPLE-compatible ...
® 16 K Karte
® Z 80 Karte
® Centronics Drucker Interface (grafikfähig)
® Musik-System (3 stimm. Synthesizer)
für je DM 85,-
Alle Karten 100 % getestet — volle Garantie.
Sofort ordern im
COMPUTERLADEN MEMMINGEN
Kreuzstraße 9
8940 Memmingen
Telefon 08331-5942
71
Terminal-Programm
für die Super-Serial-Card
von Andreas Lecreux
Das Terminal-Programm aus dem
Peeker 4/85 wurde auf einer
ASIO-kompatiblen Karte getestet
und entwickelt. Da diese Karte
nicht sehr verbreitet ist, folgt hier
die Anpassung an die Super-Se-
rial-Card von Apple. Die benutzten
Adressen beziehen sich auf diese
Karte in Slot 2 und sind dem dazu-
gehörigen Handbuch (Apple
+#A2L0044) entnommen.
Die Programme werden erst vor
der Ausführung geändert, damit
das Original erhalten bleibt. Dies
wird durch einen EXEC-File er-
reicht, der als erstes die Original-
programme in den Speicher lädt,
diese dann entsprechend patcht
und danach ausführt. Der Aufruf
erfolgt somit durch „EXEC
TERMINAL.PATCH'“.
Bei jedem dieser Schritte wird auf
dem Bildschirm eine Meldung aus-
gegeben. Wer diese Prozedur
nicht jedesmal ausführen will, kann
die geänderten, im Speicher be-
findlichen Programme auf einer an-
deren Diskette durch „SAVE TER-
MINAL“ und „BSAVE TERMI-
TERMINAL.PATCH
NOMON C,I,O
HOME :
PRINT "nur bei Version 1.3"
NAL.B, A$2000, L1046“ abspei-
chern.
Im Applesoft-Programm werden
die Zeilen, in denen die Geschwin-
digkeit (Zeilen 2100 ff.) und die
Steuerleitung RTS gesetzt werden,
ersetzt. Die genauen Änderungen
entnehme man dem Listing. In der
Programmzeile 2904 wird die
Schnittstelle initialisiert. Die hier
verwendeten Parameter bedeuten:
0OC - keine Verzögerung nach ei-
nem CR,
1D - 7 Datenbits und 1 Stoppbit
OP — ohne Parität,
1T- keine Übersetzung von Klein-
buchstaben,
80N — 80 Zeichen/Zeile,
OL - keine Verzögerung nach ei-
nemLeF.
Als zweites erfolgt ein Sprung in
den Monitor. Von hier aus werden
im Maschinenprogramm alle
Adressen, bei denen auf die Sta-
tus- und Datenregister der Schnitt-
stelle zugegriffen wird, gepatcht.
Nach dem Rücksprung zu Ap-
plesoft wird das neue Programm
gestartet.
PRINT "Patch für Super-Serial-Card'
PRINT "BASIC-Programm wird geladen"
LOAD TERMINAL
PRINT "Maschinenprogramm wird geladen"
BLOAD TERMINAL.B
PRINT "Patch der Programme"
PRINT " L;
DEL 9914, 9934
1599
1535 DIM SP(15)
1536 RESTORE :
1537 READ SP(I) : NEXT
Geschwindigkeit"
FOR I = 1 TO 15
1700 DATA 590,75,11®,135,159,399,609,1209
171® DATA 1809 ,2400, 3600 ,4800,7200 , 9600
1720 DATA 19209
2105 PRINT "Tempo zur Zeit = ";SP(SP)
2107 FOrRK= 1 T0 15:
2118 PRINT " Baud" : NEXT K
PRINT K;" = ";SP(K);
2115 INPUT "";SP$ : SP = VAL(SP$)
2128 IF SP < 1 OR SP > 15 GOTO 2115
2125 PRINT D$"PR#"SE :
2904 PRINT D$'"PR#"SE :
PRINT D$'"PR#'SC
PRINT "
2805 :
3330 :
2692 :
3050 :
3055 :
PRINT "'
CALL -151
PRINT I$;SP;'"B" :
PRINT I$"®C1DPPITSPNGL" :
PRINT D$"PR#'"SC
2. RTS setzen und löschen"
3. Ändern des Maschinenprogrammes'"
2081:A8 N 22EF:A8 N 232D:A8 N 2354:A8
23A9:A8 N 2079:A9 N 2RE7T:A9 N 2320:A9
234C:A9 N 23Al:A9 N 23EF:98 N 23F0:19
3DdG
2415 PRINT "Patch Super-Serial-Card beendet"
RUN
72
Diversi-DOS 4-C
getestet von Rudolf Rötering
Die vier bekanntesten Betriebssy-
steme für den Apple Il sind:
—- DOS: Disk Operating System,
— UCSD-Pascal: (zu Ehren des
Philosophen Blaise Pascal),
— CP/M: Control Program for Mi-
croprocessor,
—- ProDOS: Professional Disk Ope-
rating System.
Seit geraumer Zeit gibt es darüber
hinaus eine Vielzahl von Disketten-
Betriebssystemen, die auf DOS
3.3 basieren und im wesentlichen
Geschwindigkeitsverbesserungen
und teilweise mehr Befehle bieten.
Diese applefremden Produkte ka-
men auf den Markt, weil die Fa.
Apple die Programmpflege des be-
tagten DOS-3.3-Systems (Aug.
1980) schlichtweg verschlafen hat-
te. Als man bei Apple endlich auf-
wachte, war es für eine verbesser-
te Version zu spät, da bereits ap-
plefremde DOS-Varianten vorla-
gen, die Apple selbst wohl kaum
mehr hätte übertreffen können.
Daraufhin wurde kurzerhand das
bereits für den Apple Ill vorliegen-
de SOS (Sophisticated Operating
System) für den Apple Il umge-
schrieben, womit das mit DOS 3.3
wenig kompatible ProDOS ent-
stand. Es wurde gegenüber DOS
3.3 so stark abgeändert, daß die
alten Compiler (z.B. Tasc, der
selbst DOS-neutral ist) nicht mehr
einsetzbar sind.
Jedes System hat seine eigenen
Vorzüge. Systeme mit geringen
Änderungen haben den Vorteil der
weitgehenden Kompatibilität mit
DOS 3.3, bieten aber meist nur
Geschwindigkeitsvorteile bei La-
devorgängen von Programmen.
Das einzige Betriebssystem, das
bei allen Schreib- und Leseopera-
tionen Verbesserungen bietet —
auch bei den besonders zeitkriti-
schen Textdateien — ist das Diver-
si-DOS, zuletzt erschienen in der
Version 4-C. (Die Version 4-C
zeigt nach unseren Messungen
keine Geschwindigkeitsverbesse-
rung gegenüber der alten 2-C-Ver-
sion.)
Die gelieferte Utility-Diskette über-
trägt das neue Betriebssystem me-
nügesteuert auf DOS-3.3-Disket-
ten. Dabei können aus diesem Me-
nü heraus eine Vielzahl weiterer
Optionen gewählt werden, wie z.B.
die Ausgabe der Bedienungsanlei-
tung auf Drucker oder als Text-
datei.
Der wohl wichtigste Vorzug von Di-
versi-DOS ist die Geschwindigkeit
beim Diskettenzugriff. Tabelle 1
gibt einen Zeitvergleich zwischen
ProDOS, DOS 3.3 und Diversi-
DOS wieder.
Die höhere Geschwindigkeit von
Diversi-DOS liegt nicht in einer
schnelleren RWTS-Routine, son-
dern in der Verbesserung des sog.
File-Managers. Um einen Sektor
zu beschreiben, sind bei DOS 3.3
18 Umdrehungen der Diskette er-
forderlich, während Diversi-DOS
nur 2 benötigt.
Der krasseste Unterschied liegt bei
„APPEND“ vor. DOS 3.3 liest den
File so lange Feld für Feld ein, bis
der Endmarker CHR$(0) erreicht
ist. Diversi-DOS dagegen sucht
den Sektor für das Ende der Datei
in der TSL und liest ihn ein, um
dort die nächsten Felder anzu-
schließen.
Tastatur- und Druckerpuffer
Diversi-DOS ermöglicht die Ein-
richtung eines Tastatur- und/oder
Druckerpuffers in der LC oder an-
deren RAM-Karten, die nach Ihren
Wünschen generiert werden kön-
nen (nur beim 48K-DOS). Diese
Option BUFFER schließt den Be-
fehl „INIT“ aus und verändert die
Vektoren für die Ein- und Ausga-
beroutinen des Monitors ($0036
bis $0039). Damit compilierte Pro-
gramme, die ihrerseits auch die
CHRGET-Routine verändern, lauf-
fähig bleiben, kann z.B. durch
„POKE 46965, 16“ der CHRGET-
Patch von BUFFER abgestellt wer-
den. Ebenso sind alle Steuerbe-
fehle an das Drucker-Interface oh-
ne Funktion auf das Druckergeb-
nis. Ob ein Videoecho erfolgt oder
ob LF nach CR ausgeführt werden
soll, muß mit POKEs in BUFFER
gewählt werden. Der Vollständig-
keit halber sei noch erwähnt, daß
BUFFER mit Einschränkungen
auch unter Integer-BASIC ver-
wendbar ist.
Der FREE-Sector-Patch
Wenn Sie den FREE-Sector-Patch
gewählt haben, kann während des
Programmablaufes der freie Spei-
cherplatz auf der Diskette ermittelt
werden. Durch folgendes Beispiel
wird dies verdeutlicht:
100 POKE 48376,96: CALL
48351: POKE 48376,32
Peeker 6/85
110 FR = PEEK(70) * 256 +
PEEK(68) : REM FR = unbe-
nutzte Sektoren
Für 64K-DOS muß Zeile 100 so
aussehen:
100 POKE 63261,96: POKE
49058,0: CALL 49054: POKE
49058,181: POKE 63261,32
Es sollte natürlich kurz vorher ein
Diskettenzugriff (z.B. ein CATA-
LOG) erfolgt sein, damit der Wert
auch aktuell ist. Eine mögliche An-
wendung wäre die Überprüfung
der Rest-Speicherkapazität einer
Datendiskette bei der Buchfüh-
rung, bevor die nächste Konten-
bzw. Buchungsdatei eröffnet wird,
damit auch alle Daten auf dieser
Diskette Platz haben.
DOS in der Language-
Card
Das 48K-DOS läßt sich mit „BRUN
DDMOVER“ in die Language-Card
verschieben. Dadurch ist es zu ei-
nem 64K-DOS geworden. Aus ei-
ner ganz normalen DOS-3.3-for-
matierten Diskette können Sie mit
der Utility-Diskette eine 64K-Ver-
sion herstellen, die während des
Bootens das DOS in die LC
schiebt. Wenn Sie beim Booten die
ESC-Taste drücken, kann der
„MOVE“ unterdrückt werden. Ist
PEEK (55) > 190, wurde DOS in
die LC geschoben. Das 64K-DOS
stellt einige neue Befehle bereit:
® Beim CATALOG wird die Rest-
Speicherkapazität der Diskette an-
gezeigt.
@® Mit INIT X lassen sich Datendis-
ketten formatieren, die die Spuren,
auf denen sonst das DOS gespei-
chert wird, für Daten freigibt. Da-
durch erhält man 32 Sektoren =
8K mehr nutzbaren Speicherplatz.
® HIMEM liegt bei $BFOO (48896),
wenn MAXFILES = 3 ist. Das be-
deutet etwa 10K mehr RAM für
Daten und Programme.
® Die Fehlermeldungen werden
im Gegensatz zum 48K-DOS aus-
geschrieben, und nicht nur mit
Code-Ziffern bezeichnet.
® Mit ESC kann die CATALOG-
Ausgabe nach jeder Bildschirmsei-
te abgebrochen werden.
® Bei BSAVE wird an den Pro-
gramm-Namen automatisch die
letzte Binäradresse und Pro-
grammlänge angefügt. Mit PAD
lassen sich diese Angaben auf den
Bildschirm bringen.
® Der RUN-Befehl kann einen
„L“-Parameter (Line) enthalten,
der das Programm ab der angege-
benen Zeile startet.
Peeker 6/85
® Ein sehr nützliches Feature ist
das Wildcard-Zeichen in Pro-
grammnamen. Mit einem „=", an-
gehängt an die ersten Zeichen des
Programm-Namens, wird der erste
File im CATALOG gewählt, bei
dem die Zeichen vor dem „=" zu-
treffen. Wenn anstelle des Gleich-
heitszeichens ein Fragezeichen
eingegeben wird, muß mit „Y“
oder „N“ das Programm ausge-
wählt werden. Das Wildcard-Zei-
chen allein ist nicht möglich.
® Alle DOS-Befehle können auch
in Kleinschrift eingegeben
werden.
® Mit „C“ erhalten Sie einen CA-
TALOG vom zuletzt eingestellten
Slot und Drive. Parameter sind hier
nicht möglich.
®@ Mit TLIST, <Name> lassen
sich z.B. Textfiles auf dem Bild-
schirm anzeigen. Mit der Leertaste
hält die Darstellung an und fährt bei
erneuter Betätigung fort.
Wenn ein BASIC-Programm ge-
TLISTet wird, kann ein „L“-Para-
meter angefügt werden, der das
Listing ab der angegebenen Zeile
beginnen läßt. Hier bewirkt die
Leertaste einen Wechsel zwischen
Pause und dem Listing der näch-
sten Zeile. Jede andere Taste läßt
den Listvorgang wieder kontinu-
ierlich durchlaufen. Dabei kann mit
„D“ zwischen den Zeilen eine
Leerzeile und mit „S“ diese Op-
tion wieder abgestellt werden. Mit
dem „:“ kann das Listing, z. B. zur
Dokumentation, sehr übersichtlich
gestaltet werden: Bei Mehrfach-
Statements werden die Befehls-
segmente zwischen den Doppel-
punkten untereinander gelistet.
Das Semikolon „;"“ stellt diese
Funktion wieder ab. Wenn Sie
beim Programm-Namen ein
BASIC-Programm wählen, können
auch andere Programme mit allen
möglichen Features geTLISTet
werden, ohne das aktuelle Pro-
gramm zu löschen. Hier können
durch Überfahren mit dem Cursor
auch Zeilen aus anderen Program-
men übernommen werden. Wäh-
rend des TLISTings werden die
Leerzeichen des Interpreters links
und rechts der Zeile nicht ge-
druckt. Dadurch läßt sich beim Edi-
tieren der Cursor ohne Ausblen-
dung bis zum Ende der Zeile fah-
ren. Ctrl-Zeichen werden invers
dargestellt und können beim Edi-
tieren gelesen werden.
@ Während mit den Pfeiltasten edi-
tiert wird, können nach einem Ctrl-I
neue Zeichen in die bestehende
Zeile eingefügt werden. Den IN-
Sequenzen
SERT-Modus erkennen Sie daran,
daß der Cursor nicht mehr blinkt
und der Text links davon eingefügt
wird, während der Cursor selbst
seine Position beibehält. In diesem
Modus können mit der Linkspfeil-
taste die Zeichen wieder gelöscht
werden. Durch ein erneutes Ctrl-I
wird der INSERT-Modus wieder
verlassen.
® Die wohl leistungsfähigste Op-
tion beim 64K-DOS sind die frei
definierbaren Tastatur-MACROS.
Jede der Tasten kann mit einer
Folge von Zeichen definiert wer-
den, von denen aber nur die Ctrl-
verwendet werden
sollten. Auf diese Weise können
Sie sich für die verschiedensten
Anwendungsfälle Macros definie-
ren und in einem Binärfile mit frei
wählbarem Namen z.B. mit
„BSAVE MACRO.E, A$DC00,
L$0100“ abspeichern.
RAM-Disk
Vom gleichen Hersteller kann ein
RAM-Disk-Emulator bezogen wer-
den, für den Sie einen 64K-Apple
mit zusätzlich mindestens 64K
RAM und Diversi-DOS in der
Language-Card benötigen. Diese
Voraussetzungen erfüllen ein Ap-
ple Ilc, ein Apple Ile mit 64K Aux-
Memory oder ein 64K Apple Il Plus
mit 2 zusätzlich möglichen 128K-
RAM-Karten in Slot 1-7. Für die
128K-Typen Ilc und Ile ist der vor-
handene RAM-Disk-Driver schon
automatisch konfiguriert. Sollten
Sie von dieser Konfiguration ab-
weichen, muß der RAM-Disk-
Driver neu eingestellt werden. Zu-
sätzlich zur normalen Rechner-
kombination kann noch eine 2.
Karte in die RAM-Disk einbezogen
werden, was mit dem mitgeliefer-
ten Programm RDCONFIG erfolgt.
Angesprochen wird die RAM-Disk
über den Pseudo-Slot 3 mit „‚„S3“.
Die Laufwerksangabe kann ent-
fallen.
Als raffinierte Option ist hier die
Möglichkeit zu nennen, eine Dis-
kette so zu initialisieren, daß ein
begrenzt formatierter Inhalt in die
RAM-Disk paßt. Bei diesem Vor-
gang wird auch der Driver und das
Startprogramm RDHELLO dort ge-
speichert. Danach ist das Betriebs-
system auf 64K-DOS umzustellen.
Beim Booten dieser Diskette wird
die RAM-Disk initialisiert und der
Disketteninhalt dorthin kopiert.
Diese Option erspart das mühsa-
me Kopieren von Textfiles in die
4 TESTDERICHTE 4
RAM-Disk mit READ und WRITE
oder mit FID. Eine solche Bootdis-
kette muß nicht, sollte aber vorher
auf allen Tracks formatiert werden,
weil ein Kopieren mit COPYA
sonst nicht möglich wäre.
Die Anzahl der formatierten Tracks
hängt von der Einstellung des
Drivers ab, der wiederum an die
RAM-Karten angepaßt werden
muß. Dieses erledigt ein auf der
Utility-Diskette befindliches Pro-
gramm namens RDCONFIG. Lei-
der werden die Optionen hinsicht-
lich reservierter Bereiche für Dou-
ble-HIRES, Konfigurationsmel-
dung beim Booten und Bank-2-
Schutz für die Karten im Aux-Slot 3
nicht berücksichtigt.
Bei der Installierung der RAM-Disk
wird HIMEM um 768 Bytes auf
$BC00 (48128) herabgesetzt, um
Platz für den Driver zu schaffen.
Hiernach stehen noch satte 45K
RAM für Daten und Programme zur
Verfügung. Auch die Bank 1 der
Language-Card wird automatisch
in die RAM-Disk integriert, die je-
doch durch die Driver-Einstellung
ausgeschlossen werden kann, um
z.B. die schnelle Garbage-Collec-
tion von Harald Grumser (Peeker,
Heft 1/2, 85) benutzen zu können,
die ja bekanntlich die Bank 1 be-
legt.
Die RAM-Disk-Einstellung wird
durch die in Tabelle 2 aufgeführ-
ten Speicherstellen bestimmt.
Tabelle 3 zeigt eine Übersicht
über die freien Speicherkapazitä-
ten von Bootdisketten und RAM-
Disks im Aux-Slot 3 des Apple Ile
mit der INIT-Option des RAM-Disk
Drivers.
Bootdisketten für 128K-Karten
stellen 480 und darüber hinausge-
hende Karten z.B. die 192K-Nep-
tune 496 freie Sektoren (volles
DOS-3.3-Format) zur Verfügung.
Wie weiter oben schon erwähnt,
laßt sich zu einer dieser Karten in
Slot 1-7 eine weitere RAM-Karte
in die RAM-Disk einbinden.
Wenn der RAM-Disk-File im Im-
mediate-Mode geBRUNt wird, ste-
hen dort 6 Sektoren mehr zur Ver-
fügung.
Zusammenfassend läßt sich sa-
gen, daß ein Apple Ile mit 64K
Aux-Memory oder größer,
LC.FREE-Garbage-Collection in
Bank 1 der Language-Card, 64K
Diversi-DOS mit RAM-Disk und
45K freiem RAM eine optimale
Nutzung ermöglicht.
73
Tabelle 1
(8201) $2099:
74
Befehl ProDOS
0 | ro [ie | om | we
Diversi-
DOS 4-C
Anmerkungen zu Tabelle 1
Die Werte wurden mit dem internen Laufwerk des Apple Ilc
ermittelt. Die in der Tabelle angegebenen Zeilennummern
beziehen sich auf das folgende Programm:
19
20
61
62
FOR I = 1 TO 29: PRINT CHR$ (4)"BSAVE XXX, A$1P09,
L$7FFF": NEXT : END
FOR I = 1 TO 2®: PRINT CHR$ (4)"BLOAD XXX": NEXT :
A$ = "123456789 123456789 123456789 123456789 123456789
125456789 123456789 123456789 123456789 123456789"
PRINT CHR$ (4)"OPEN YYY": PRINT CHR$ (4)"WRITE YYY":
FOR I = 1 TO 500
PRINT A$
NEXT : PRINT CHR$ (4)"CLOSE": END
PRINT CHR$ (4)"OPEN YYY": PRINT CHR$ (A)"READ YYY":
FOR I = 1 TO 599
INPUT "";A$
NEXT : PRINT CHR$ (4)"CLOSE": END
A = 123456789
PRINT CHR$ (4)"OPEN ZZZ": PRINT CHR$ (4)"WRITE ZZZ":
FOR I = 1 TO 50900
PRINT A
NEXT : PRINT CHR$ (4)"CLOSE": END
PRINT CHR$ (4)"OPEN ZZZ": PRINT CHR$ (4)"READ ZZZ":
FOR I = 1 TO 5999
INPUT "";A
NEXT : PRINT CHR$ (4)"CLOSE": END
Tabelle 2
128+S1otx16
(8202) $20BA:
128+S1lotx16
l. RAM-Karte
d
l
2
Slotx16
64K IIe RAM-Karte (Aux)
192K Neptune Ile (Aux)
128K Memorymaster IIe (Aux)
128K Saturn Typ (Slot 1-7)
128K Legend Typ (Slot 1-7)
2. RAM-Karte
Slot*16 = Saturn Typ (Slot 1-7)
Legend Typ (Slot 1-7)
(8203) $200B: Konfigurationsmeldung
bei RAMDISK unterdrücken
1) ausgeben
1 unterdrücken
(8204) $200C: Initialisieren der RAMDISK
beim Booten mit Kopie
Ö = nein, 1 = ja
(8205) $200D: Bank 2 schützen
ö = nein, 1 = ja
(8206) $20QE: Double-Hires-Schutz
kein Schutz
Double-Hires 1
Double-Hires 2
Double-Hires 1+2
I N
Tabelle 2
Option bei 64K-
Karten in Slot #3
Sekt
Double:
HIRES 1
HIRES 2 144
HIRES1 +2 144
ohne Bank 2
Diversi-DOS 2-C
Bootdisk
RAM-Disk
| KByte | Sekt | Köyte
44
36
36
wie mit
auf Peeker-Sammeldisk #6
In Absprache mit der Firma Diver-
sified Software Research haben
wir auf die Sammeldisk #6 zwar
nicht das ganze Betriebssystem,
wohl aber die Dateien HELLO und
ASMDIV aufgenommen. Wenn Sie
Diversi-DOS benutzen wollen, bit-
ten wir Sie, $30.00 (30,- Dollar) in
Form eines auf eine beliebige
amerikanische Bank ausgestellten
Schecks (ggf. Kredit-Karte) zugun-
sten von DSR an folgende An-
schrift zu senden:
DSR, Inc.
5848 Cramptom Ct.
Rockford, IL 61111
USA
Konto-Nr.815 877-1343
(Visa/Master-Card)
Sie erhalten dann direkt von DSR
die Diskette mit der neuesten Ver-
sion 4-C und allen dazugehörigen
Utilities.
Zur Installierung der auf der Sam-
meldisk enthalten Version 2-C ver-
fahren Sie wie folgt:
1. DOS 3.3 von System-Master-
Diskette booten
NEW
10 PRINT "HELLO"
Leerdiskette einlegen
INIT HELLO
Peeker-Sammeldisk einlegen
RUN HELLO
Formatierte Leerdiskette ein-
legen
Nunmehr aus HELLO-Menü nach-
einander folgende Optionen (=Zif-
fer) wählen:
Po BoaNmN
Option 2 = PUT DIVERSI-DOS
ONTO A DISK
Option 7 = BSAVE DDMOVER
FILE
Option 9 = EXIT TO BASIC
Damit ist aus Ihrer formatierten
Leerdiskette eine bootfähige Di-
versi-DOS-Diskette geworden. Di-
versi-DOS 2-C unterscheidet sich
von 4-C in folgenden Punkten:
1. 2-C enthält außer dem DD-
MOVER keine zusätzlichen Featu-
res („Schnickschnack“), so daß
die 48K-Version viele Einsprung-
adressen vom alten DOS 3.3 be-
wahrt. Persönlich benutze ich des-
halb nur 2-C.
2. 2-C ist genauso schnelle wie 4-C.
3. Wenn man mit BRUN DD-
MOVER 2-C in die Language-Card
Bank 2 schiebt, so liegt HIMEM
fest bei $BF0O (48896). MAXFILES
ist auf 5 festgelegt, d.h. 5 OPEN-
Files. Bei 4-C wird bei Bedarf der |/
O-Puffer ab $BFOO abwärts fortge-
setzt. Bei 2-C kann man also HI-
MEM herabsetzen und Maschinen-
programme bequem oberhalb von
HIMEM unterbringen. Dies ist bei
4-C nicht ohne weiteres möglich.
4. Die diversen RAM-Disk-Driver
für die 64K-Karte auf der „MMU-
2.0-Diskette“ (Hüthig Software
Service) sowie aus „Apple DOS
3.3, Tips und Tricks“ laufen nur in
Verbindung mit 2-C.
Nachdem Sie die Originalversion
4-C von Diversified Software Re-
search erworben haben, können
Sie selbst wählen, welche Version
Ihnen mehr zusagt.
Peeker 6/85
Lasar Il ze
getestet von H. Grumser
Die Firma MICROMINT Streil bietet
zu einem Grundpreis von DM
1365,- einen zum Apple Il Plus
kompatiblen Rechner an, der be-
reits über eine 16K-Speicherer-
weiterung und den Z80-A-Prozes-
sor auf der Mutterplatine verfügt.
Der Lasar Il ze ist in einem etwas
üppigen IBM-ähnlichen Gehäuse
untergebracht, das zwei normale
oder vier Slimline-Laufwerke auf-
nehmen kann. Als externe Tastatur
wird ein MARK-II-Keyboard der
Firma Multitech geliefert.
Die zum Test bereitgestellte Aus-
stattung umfaßte außerdem den
Monitor Lasar 4000 (DM 330,-), ein
bereits im letzten Peeker geteste-
tes Chinon-Laufwerk mit Controller
(DM 645,-) und eine 80-Zeichen-
karte (DM 179,-).
Aufbau und Inbetriebnahme
Die erste zu nehmende Hürde ist
der Zusammenbau der einzelnen
Komponenten, die ordentlich ver-
packt geliefert werden. Die Be-
schreibungen der einzelnen Teile
ist, abgesehen vom Handbuch der
Tastatur, etwas dürftig, was dem
Apple-Neuling Schwierigkeiten
bereiten dürfte. Mit etwas techni-
scher Intuition ist der Aufbau je-
doch zu handhaben und nach an-
fänglicher Mühe erscheint zum er-
sten Mal die Erfolgsmeldung „LA-
SAR UÄ ze“ und das Integer-BA-
SIC-Prompt-Zeichen. Das Be-
triebssystem wird nicht selbststän-
dig geladen, sondern muß durch
„PR#6“ gestartet werden (wohl
dem, der über eine System-Ma-
ster-Diskette mit Applesoft ver-
fügt).
Peeker 6/85
Der BASIC-Interpreter befindet
sich auf einer ROM-Karte, die in
Slot O steckt; eine Applesoft-Karte
kann nicht (!) bezogen werden.
Dies bedeutet, daß ProDOS nicht
gestartet werden kann, solange
keine reine Applesoft-Firmware
vorhanden ist, da ProDOS hier er-
freulicherweise nicht durch den
Controller zum erliegen kommt,
sondern den Interpreter moniert.
Die Tastatur
Die deutsche Tastatur von Multi-
tech wurde in erster Linie für die
Programmierung unter Applesoft
und DOS 3.3 entwickelt. So sind
12 Funktionstasten mit Befehlen
dieser Systeme vordefiniert. Dabei
führt z.B. die Taste Fi12 den
HOME-Befehl sofort aus (d.h. RE-
TURN wird übertragen), während
der RUN-Befehl ohne RETURN
übertragen wird. Dies erscheint
wohl einsichtig, bedarf jedoch eini-
ger Gewöhnung. Darüber hinaus
erlaubt eine Alternate-Taste den
Zugriff auf weitere 52 BASIC-
Schlüsselwörter mit einem Tasten-
druck. Diese Option kann nur nach
langem Umgang mit dieser Tasta-
tur gewinnbringend genutzt wer-
den. Als sehr praktisch erweist
sich die Möglichkeit, 10 Tasten mit
eigenen Kommandos zu belegen,
solange der Computer nicht abge-
schaltet wird.
Außer einem separaten Ziffern-
block sind noch einige Tasten ent-
halten, die spezielle ESC-Sequen-
zen oder Ctrl-Funktionen generie-
ren oder automatische Zeilen-
numerierung ermöglichen. Trotz
der nicht gerade ergonomisch an-
gelegten RETURN-Taste weiß je-
der diese Tastatur zu schätzen, der
schon einmal versucht hat, dem
4 TESTDERICHTE
alten Europlus-Keyboard ein „Ö“
zu entlocken.
Die Groß-/Kleinschreibung wird
von der Hard- und Firmware des
Lasar unterstützt, unter Applesoft
können Kleinbuchstaben jedoch
nur mit Hilfe der 80-Zeichen-Karte
eingegeben werden.
Controller und 80-Zeichenkarte
Der Controller beweist seine Kom-
patibilität, wie schon oben erwähnt,
beim Booten des ProDOS-Sy-
stems und arbeitet auch, wenn be-
reits Applesoft in die 16K-Karte
geladen wurde. Damit ist eine aus-
reichende Kompatibilität gewähr-
leistet.
Die- 80-Zeichenkarte verfügt über
einen Softswitch und ist im großen .
ganzen videx-kompatibel. So läuft
der entsprechend konfigurierte
Merlin-Assembler wie auch die
Betriebssysteme UCSD und CP/M
ohne Schwierigkeiten. Zum Test
lag eine Karte mit amerikanischem
Zeichensatz vor. Laut Angabe der
Firma soll jedoch auch eine deut-
sche oder wahlweise umschaltbare
Version lieferbar sein.
Kompatibilität
Einleitend kann gesagt werden,
daß keine Kompatibilitätsprobleme
auftraten. Nach Laden des Ap-
plesoft-Interpreters liefen alle BA-
SIC-Programme anstandslos.
Die Betriebssysteme UCSD und
CP/M konnten ohne Schwierigkei-
ten gestartet werden. Das Arbeiten
mit dem Big-Mac- bzw. Merlin-As-
sembler und der Applewriter-Ver-
sion mit Videx-Preboot-Diskette
gestaltet sich auf Grund der Groß-
Kleinschreibtastatur bedeutend
komfortabler.
Die Probleme mit ProDOS können
wohl nur bei illegalen Nachbauten
umgangen werden; bei Kompati-
blen bleibt zu guter Letzt der legale
Weg, die benötigte Firmware bei
einem „durch persönliches Band
verbundenen Bekannten“ mit Ori-
ginal-Apple nachbrennen zu las-
sen. Unter diesen Umständen
dürfte der Lasar Il ze so kompatibel
sein wie der Apple Il Europlus zu
seinem amerikanischen Bruder.
75
Fazit
Wenn man von der recht beschei-
denen „Paperware“ absieht, stellt
der Lasar || ze eine echte Alternati-
ve zu den bedeutend teureren Ap-
ples dar. Wer ohne Betreuung der
Firma Apple leben kann und in
Kauf nimmt, etwa zukünftige Be-
triebssysteme nicht benutzen zu
können, weil zunächst eine Prüf-
summe der kompletten Firmware
gebildet wird, ist mit dem Lasar
sicher nicht schlecht beraten.
Das beschriebene Gerät wurde ca.
drei Wochen lang zu Testzwecken
eingesetzt. In diesem Zeitraum
konnten keine technischen Mängel
festgestellt werden.
Ausgabe und
Eingabe mi:
TYPETERM®
im Slot Ihres
APPLE IV/lle
Das bedeutet: Computer-
textverarbeitung von der
Schreibmaschinentastatur!
Steckerfertig ohne Umbau.
TYPETERM- DM479,-
Interface incl. MWSt.
für alle BROTHER-Typenrad-
schreibmaschinen
Paketpreis: DM 1348,—
Schreibmaschine
TYPETERM-Kit für CE-50
CE-25 mit TYPETERM
TYPETERM - ein starkes Interface für
starke Maschinen! Alle Cursor- und Ctl-
Befehle. 2k ROM auf der Karte f. DOS,
PRODOS, CP/M, PASCAL. Alle Features:
Hoch-/Tiefstellen, autom. Unterstreichen,
var. Zeichen- u. Zeilenabst., autom.
Papierzuführung usw. Ausführl.
Handbuch vorab: 10,— DM auf Konto
4770-306 PGiroA Han (Anrechnung).
TYPETERM ein Produkt von
®
interkom Kock & Mreches GmbH
— Post
., 3004 4
electronic Telefon 05139-873
76
Typenradschreibmaschine Brother CE 50
getestet von Rainer Gerdes
Allgemeines: Im November 1984
kaufte ich mir bei der Firma Inter-
com GmbH in Isernhagen eine
elektronische Schreibmaschine
vom Typ Brother CE 50 mit ent-
sprechendem Interface für meinen
Apple Il Plus. Der Preis lag zu die-
ser Zeit bei DM 1298,- und er-
schien mir bei Preisvergleichen mit
anderen Anbietern als günstig. Die
räumliche Nähe des Verkäufers
gab wegen vieler schlechter Erfah-
rungen mit anderen Computeran-
bietern den Ausschlag. Bei der CE
50 handelt es sich um eine porta-
ble elektronische Schreibmaschi-
ne mit folgenden Zusatzausstat-
tungen:
— automatischer Papiereinzug,
— Halbschritt vor- und rückwärts,
— Indizierung und Exponentiation.
Mit der Maschine und dem Inter-
face wird noch eine 50seitige (!)
Beschreibung mitgeliefert. Darin
sind die Möglichkeiten der Maschi-
ne beschrieben: die Installierung
und der erste Test, die verschiede-
nen Betriebsarten sowie das Ver-
halten bei den verschiedenen Ap-
ple-Betriebssystemen DOS 3.3,
CP/M und UCSD. Am Ende sind
Subroutinen aufgelistet und doku-
mentiert, um die Maschine auch
unter CP/M und UCSD als Einga-
beeinheit verwenden zu können.
Diese Subroutinen können auch
vom Anbieter gegen eine Gebühr
von DM 25,- pro Betriebssystem
auf Diskette bezogen werden. Das
Interface hat keine Standard-
schnittstelle, sondern nutzt den fir-
menspezifischen Eingang der
Schreibmaschine. Das sollte in Be-
tracht gezogen werden, wenn man
in absehbarer Zeit einen System-
wechsel vornehmen will.
Betriebserfahrungen: Die Ma-
schine wurde bis jetzt mit den bei-
den Textverarbeitungssystemen
Applewriter II und Wordstar gete-
stet. Dabei tauchten keine Schwie-
rigkeiten auf. Die Sonderfunktio-
nen sind über Ctrl-Zeichen zu er-
reichen und werden von der Ma-
schine anstandslos ausgeführt. Zu
den Sonderfunktionen gehören
z.B. Uhnterstreichung, automati-
scher Papiereinzug, Wahl des Zei-
chenabstandes, Wahl des Zeilen-
abstandes, Halbschritt usw.
Die Besonderheit des Interfaces
kommt aber erst bei dem Textver-
arbeitungssystem Wordstar zum
Tragen, nämlich die Benutzung der
Schreibmaschine als Eingabeta-
statur. Nach dem Patchen des CP/
M-Betriebssystems mit der im
Handbuch beschriebenen Routine
kann der Wordstar normal mit „In-
stall“ angepaßt werden. Es ist nur
darauf zu achten, daß beim Driver-
Menu die Möglichkeit CP/M “List“
Device gewählt wird und daß sich
das Programm STAT auf der Dis-
kette befindet. Mit zwei Befehlen
ist dann vor dem Starten des
Wordstar die Schreibmaschine als
Ein- und Ausgabeeinheit aktiviert.
Dabei sind Druckwerk und Tastatur
getrennt. Man kann also Texte, oh-
ne einen Ausdruck zu bekommen,
direkt in den Rechner schreiben.
Durch die vorhandenen Zusatzta-
sten sind auch die ESC- und Ctrl-
Funktionen erreichbar. Die
Schreibmaschine macht also eine
Zusatztastatur, auf die man beim
Apple II+ wohl nicht verzichten
kann, überflüssig, wodurch gut DM
500,- gespart werden können. Lei-
der ist diese Eingabemöglichkeit
auf den Wordstar beschränkt. Der
Applewriter ist so angelegt, daß
nur von der Apple-Tastatur aus zu-
gegriffen werden kann.
Erfahrungen mit dem Anbieter:
Die anfängliche Skepsis dem An-
bieter gegenüber rührt aus einem
reichen Erfahrungsschatz mit an-
deren Computerverkäufern her
und war auch ein Punkt meiner
Kaufentscheidung (s.o.). Diese
Skepsis wich aber bald und mach-
te einem positiven Urteil Platz. Nie-
mand ist fehlerl\os und so wurde
auch meine Schreibmaschine von
einer Kinderkrankheit befallen.
Was in Basic einwandfrei funktio-
nierte, nämlich Ein- und Ausgabe
von der Schreibmaschine, wollte
nach dem Patchen des CP/M-Sy-
stems nicht funktionieren. Nach
mehreren Versuchen schickte ich
erst einmal die Diskette zurück (ich
hatte mich entschlossen, die 25.-
DM zu investieren) und bekam
nach 24 Stunden Ersatz. Als es
immer noch nicht funktionieren
wollte, wurde das EPROM auf der
Platine ausgetauscht. Das ging al-
les sehr schnell und reibungslos.
Nachteile der Maschine: Kein
Licht ohne Schatten. Der erste Kri-
tikpunkt ist die Geschwindigkeit
der Maschine. 13 Zeichen/Sekun-
de ist natürlich sehr langsam, und
man braucht etwas Geduld. Die
Schreibmaschine wird von CP/M
nur in Slot 2 entdeckt. Ist die
Schreibmaschine in Slot 2 einge-
steckt, so meldet sich CP/M nur,
wenn die Maschine in Betrieb ist.
Wurde der Rechner ausgeschaltet,
so muß auch die Schreibmaschine
ausgeschaltet werden. Andernfalls
bleibt das Schreibwerk in der Mitte
der Maschine stehen und CP/M
bootet nicht mehr. Es müssen also
immer beide Maschinen gleichzei-
tig gestartet werden.
Fazit: Eine schöne Maschine mit
kleinen Fehlern, die aber trotzdem
sehr empfehlenswert ist. Die glei-
che Empfehlung gilt für den An-
bieter.
Brother CE 50
Peeker 6/85
Editierhilfen für den Apple
getestet von Franz-Josef Hüskens
Jeder, der mit dem Apple ernsthaft
programmieren will, hat mit Sicher-
heit (und Bedauern) bereits festge-
stellt, daß dieser Computer von
Hause aus nur mit sehr mageren
Editierfähigkeiten ausgestattet ist.
Das Programmieren in BASIC wird
fast zur Tortur, da bei der Korrektur
einer Zeile mit „wilden“ Tastense-
quenzen gearbeitet werden muß
und dabei die Fehleranfälligkeit
reichlich hoch ist.
Dies macht es dann früher oder
später erforderlich, ein Programm
zu erstehen, das bei der Berichti-
gung und Veränderung von Pro-
grammzeilen hilft und vielleicht
auch noch sonstige Programmier-
unterstützung bietet. Hier sollen
nun zwei Programme vorgestellt
werden, von denen jedes für sich
eine große Hilfe darstellt, die je-
doch zur Freude des Programmie-
rers auch gemeinsam ihre Arbeit
verrichten können.
Global Programm Line
Editor
Die Utility GPLE ist ein allgemeines
Programmzeilen-Bearbeitungspro-
gramm. Es ist sowohl unter DOS
3.3 als auch unter ProDOS ein-
setzbar und wird auf einer Diskette
geliefert, auf der sich beide Pro-
grammversionen befinden. Wird
diese Diskette gebootet, wird auto-
matisch ProDOS geladen und
GPLE installiert. Will man unter
DOS 3.3 mit GPLE arbeiten, so
muß man mit einer „normalen“
Diskette booten und dann GPLE
laden.
Unter DOS 3.3 gibt es dafür drei
Möglichkeiten:
1. zwischen die DOS-Puffer,
2. in die 16K-Karte (mit einer zwei-
ten Sprache),
3. mit DOS in die 16K-Karte.
Für diese drei Speicherbereiche
stehen auf der Diskette drei Pro-
grammversionen zur Verfügung.
Als weiteres Programm befindet
sich auf der Diskette ein DOS-
Mover; dieser wird bei der dritten
Möglichkeit benötigt.
Bevor man GPLE lädt, kann man
es für den eigenen Gebrauch „ein-
stellen“ (konfigurieren). Dabei
können folgende Möglichkeiten
gewählt werden:
1. eine von sechs direkt unter-
stützten 80-Zeichen-Karten (für
Peeker 6/85
weitere Karten sind Treiber-Pro-
gramme auf der Diskette vor-
handen),
2. ob die 80-Zeichen-Karte direkt
nach dem Laden von GPLE einge-
schaltet werden soll,
3. Simulierung eines Tastaturpuf-
fers,
4. Groß- und Kleinschreibung.
Auf Schwierigkeiten, die die Be-
nutzung des Tastaturpuffers her-
vorrufen kann, wird im Handbuch
ausdrücklich hingewiesen.
Die Benutzung von GPLE
Das wohl wichtigste Kommando ist
Ctr-E. Danach erhält man die
Möglichkeit, eine oder mehrere
Programmzeilen zu editieren oder
in einem Zeilenbereich bzw. im ge-
samten Programm Wörter zu SU-
chen und/oder zu ersetzen.
Es wird die gewünschte Zeile geli-
stet und zur Bearbeitung zur Verfü-
gung gestellt. Beim Editieren eines
Zeilenbereichs wird die jeweils zur
Bearbeitung anstehende Zeile an-
gezeigt.
GPLE bietet folgende Editierhilfen:
— Positionierung des Cursor (zum
Anfang oder zum Ende der Zeile
oder auf ein bestimmtes Zeichen);
— Einfügen und Löschen beliebiger
Zeichen (auch Ctrl-Zeichen);
— Löschen von ganzen Zeichen-
Ketten;
— „Packen“ einer Zeile, d.h. alle
Leerzeichen (Blanks), die nicht in
Anführungszeichen stehen, wer-
den entfernt;
— Umwandlung des Zeichens unter
dem Cursor in einen Klein- bzw.
Großbuchstaben;
— man kann aber auch alle Ände-
rungen wieder rückgängig ma-
chen.
Neben dem Editieren von Pro-
grammzeilen ist es auch möglich,
mit Otrl-W Befehle, die im direkten
Modus eingegeben und noch nicht
mit RETURN bestätigt wurden, zu
verbessern.
Der große Vorteil, den GPLE dabei
bietet, ist die Akzeptierung einer
Zeile unabhängig von der momen-
tanen Cursorposition, d.h. bei ei-
ner Änderung oder Verbesserung,
die am Anfang einer Zeile nötig
war, muß der Zeilenrest nicht mit
dem Cursor „überfahren“ werden,
um ihn zu übernehmen. An jeder
beliebigen Stelle der Zeile kann
RETURN gedrückt werden, und die
TESTDERICHTE 44
Zeile wird so übernommen, wie sie
auf dem Bildschirm zu sehen ist.
Dies ist aber noch nicht alles, was
GPLE bietet!
Terminals an größeren Computern
haben meist neben der Tastatur
noch Funktionstasten, die mit häu-
fig benötigten Befehlen oder Be-
fehlssequenzen programmiert
werden können.
Durch GPLE wird der Apple auch
mit solchen „programmierbaren“
Tasten ausgerüstet. Zur Befehls-
ausführung müssen dann zwei Ta-
sten, nämlich die ESC-Taste und
die „programmierte“ Taste betätigt
werden.
Um eine Taste zu programmieren,
wird mit Ctrl-E zuerst in den Edi-
tiermodus umgeschaltet, dann
ESC und die zu definierende Taste
eingegeben und zum Schluß der
oder die gewünschten Befehle
programmiert. Dabei stehen insge-
samt 1152 Bytes zur Verfügung.
Eine so definierte ESC-Tabelle
kann mit dem entsprechenden
Hilfsprogramm auf Diskette ge-
speichert bzw. auf dem Drucker
ausgegeben werden. Die zwei
Hilfsprogramme werden mitgelie-
fert. Natürlich ist es auch möglich,
die Tabelle seitenweise auf dem
Bildschirm anzuzeigen.
Außerdem befinden sich auf der
Diskette noch drei Programme, mit
denen FID, MUFFIN und RENUM-
BER so geändert werden, daß sie
mit dem verschobenen DOS arbei-
ten können.
Zusammen mit der Diskette erhält
man ein 38 Seiten starkes Hand-
buch, das nicht nur die Befehle
detailliert und anhand von Beispie-
len beschreibt, sondern auch die
Benutzung aller auf der Diskette
mitgelieferten Programme erklärt.
Zusätzlich enthält das Handbuch
noch einen Teil mit verschiedenen
allgemeinen Tips zur besseren und
übersichtlicheren Programmierung
und Tips zur Anwendung von
GPLE.
DOUBLE TAKE
DOUBLE TAKE kann allein arbei-
ten; es kann jedoch auch zusam-
men mit GPLE geladen werden,
und zwar an die gleichen Stellen
(s.0). Man kann bis zu vier Module
laden (die Module werden vom
Hersteller mit Farben bezeichnet),
wobei das fünfte automatisch ein-
gelesen wird.
Die Module enthalten folgende
Funktionen:
— Das rote Modul enthält eine neue
LIST- und CATALOG-Routine.
Beim Listen eines Programms gibt
es nun zwei Möglichkeiten: das alt-
bekannte Applesoft-Listing und ein
neues Listing, bei dem alle Befeh-
le, die in einer Programmzeile ste-
hen können, in eine neue Bild-
schirmzeile geschrieben werden.
Sowohl beim CATALOG als auch
beim Listen ist es möglich, mit den
Pfeiltasten die Ausgabe vorwärts
und rückwärts zu steuern.
— Das orange Modul enhält diverse
Monitor-Hilfen. Neben einem Hex/
ASCII-Dump, einer Disassemblie-
rung und einer Hexadezimal/Dezi-
mal-Umrechnung ist es auch mög-
lich, Monitor-Kommandos aus dem
Applesoft-Direktmodus heraus
einzugeben.
— Das blaue Modul gestattet es,
zwei Applesoft-Programme zu
mergen (mischen), Zeilen umzu-
numerieren (beides entspricht
dem Applisoft-Programm RENUM-
BER) und Zeilen automatisch zu
numerieren (entspricht dem
AUTO-Befehl beim Integer-
BASIC).
— Das gelbe Modul bietet:
1. Programmstatistik (Zeiger und
Speicherbereiche des BASIC-Pro-
gramms);
2. 2-Byte-PEEK (entspricht PEEK
(adr) + PEEK (adr + 1) x 256);
3. Liste der Variablen eines Pro-
gramms, alphabetisch sortiert mit
den Nummern der Zeilen, in denen
sie auftreten;
4. Anzeige der einfachen Varia-
blenwerte eines Programms (keine
Felder);
5. „Cursor-Ersatz“ (der Cursor
kann neu definiert werden);
6. Sichtbarmachen von Ctrl-Zei-
chen.
Zusätzlich gibt es ein Modul mit
„Bildschirmschaltern“ zum einfa-
chen Umschalten zwischen Text
und Grafik (Lores, Hires)
Alle Komandos belegen die ober-
ste Reihe der Tastatur und werden
mit Ctrl-F aufgerufen. In der Anzei-
ge erscheint dann „FUNCTION?“.
Nun muß die mit der gewünschten
Funktion belegte Taste gedrückt
werden, worauf gegebenenfalls
weitere „Hilfs“-Fragen erschei-
nen. Als Gedächtnisstütze wird ei-
ne Kommando-Tafel mitgeliefert,
die man hinter die oberste Tasten-
reihe stecken kann.
Das Programmsystem kann wegen
der modulweisen Lademöglichkeit
77
den eigenen Wünschen und Be-
dürfnissen entsprechend zusam-
mengestellt werden. Das dazu be-
nötigte Programm erlaubt nicht nur
die Auswahl der Module in der nor-
malen Länge, sondern bietet die
Teilprogramme in einer verkürzten
Version an (bis auf das gelbe Mo-
dul) und zeigt, woraus die verkürz-
ten Module bestehen.
Alle fünf Module zusammen benö-
tigen in der normalen Form 8K
Speicherplatz. Bei entsprechender
Speicherung (DOS und GPLE in
der 16K-Karte, DOUBLE TAKE
darunter) verbleiben ungefähr 38K.
Die Benutzung von DOUBLE
TAKE wird in einem 20seitigen
Handbuch gut beschrieben. Dabei
wird auch auf die Unterschiede im
Aufbau der Tastatur des Apple Il
Lernprogramme
getestet von
Dr. Jürgen B. Kehrel
Die Firma INTUS Lern-Systeme
AG bietet eine große Zahl von Pro-
grammen an, die Ihren Apple zum
geduldigen und anspruchsvollen
Lehrer werden lassen. Alle Pro-
gramme sind in deutscher Sprache
und auf einem Apple lie oder IIc
lauffähig. Der ältere Apple Il Plus
ist wegen fehlender Kleinschrei-
bung und der eingeschränkten Ta-
statur (Umlaute) nur bedingt ein-
satzfähig, z.T. gar nicht. Die Dis-
ketten sind kopiergeschützt. Zu
Testzwecken wurde dem Peeker
eine Auswahl der Programme zur
Verfügung gestellt, die nachfol-
gend charakterisiert werden.
Maschineschreiben wie der Blitz
In 20 Lektionen für Anfänger und
Fortgeschrittene wird ein komplet-
ter Lehrgang ohne zusätzliches
Lehrbuch geboten. Die einzelnen
Tasten (inkl. Groß- und Klein-
schreibung), Wörter und Sätze
werden geübt. Ihre Genauigkeit
und Schnelligkeit wird getestet, so
daß Sie gezielt üben können, um
Ihre Fähigkeiten zu vervollkomm-
nen. 1 Applesoft-Diskette, DM
188,—. Für Apple II Plus ungeeignet.
Computer-Simulator
Dieses Programm hilft Ihnen, die
Arbeitsweise eines echten Com-
puters zu verstehen. Ein verein-
fachter Rechner mit nur 4-Bit-Pro-
78
Plus und des Apple Ile eingegan-
gen. Zusätzlich erhält man die be-
reits oben erwähnte Kommando-
Tabelle.
Zur Zeit gibt es in Deutschland
noch die Version 1.2 von DOUBLE
TAKE. Diese Version arbeitet nicht
mit GPLE zusammen! Wollen Sie
beide Programme gemeinsam be-
nutzen, so müssen Sie beim Kauf
unbedingt die DOUBLE-TAKE-
Version 2.0 verlangen. Diese Ver-
sion unterstützt auch die 80-Zei-
chen-Karte, wobei 11 verschiede-
ne Kartentreiber zur Verfügung
stehen. Beide Programme werden
von der Beagle Bros Inc. verlegt
und sind in Deutschland bei ver-
schiedenen Importeuren erhältlich.
GPLE kostet ca. DM 180,- (und ist
seinen Preis wert!), DOUBLE
TAKE ca. DM 140,-.
von INTUS
zessor, 20 Speicherplätzen und 10
Befehlen läßt Sie in sein Innenle-
ben (Ein- und Ausgabe, Zentral-
einheit mit Akkumulator, Pro-
grammzähler und Instruktionsregi-
ster) schauen. Für Schüler ab etwa
6. Schuljahr. 1 Applesoft-Diskette
plus Manual, DM 146,-.
Applesoft-Basic-Tutorial
Mit diesem Tutorial und 9 Seiten
Text werden Sie lernen, in Ap-
plesoft zu programmieren. In 12
Lektionen wird der ganze Befehls-
satz des Apple (außer der hochauf-
lösenden Grafik) mit Ihnen durch-
gearbeitet. Zwei Anwendungstuto-
rials zeigen Ihnen kommerzielle,
medizinische, statistische und
schulische Beispiele sowie Spiele.
2 Applesoft-Disketten, DM 295,-.
Deutsche Grammatik mit Spaß
Sie besteht aus einer umfangrei-
chen Serie mit zur Zeit 15 Disket-
ten zu Rechtschreibung, Zeichen-
setzung, Wortarten, Verben, Zei-
tenfolgen, Adjektiven und Adver-
bien, Satzgliedern, Haupt- und Ne-
bensätzen, Transformationen,
Wortbedeutungen und stilistischen
Problemen. Neben Regeln und Er-
klärungen stehen zahlreiche
Übungen, die Sie zwischen 2 und
5 Stunden pro Diskette beschäfti-
gen. Arbeitstempo und Schwierig-
keitsgrad sind wählbar. 15 Pascal-
Disketten, je DM 165,-. (Apple-
Pascal nicht erforderlich.)
Algebra, leicht verständlich
Die Übungsprogramme dienen zur
Vertiefung des Elementar-Algebra-
Stoffes. Interaktiv werden Sie in
mehreren Schwierigkeitsebenen
zur selbständigen Lösung geleitet.
Bei falschen Lösungen werden
Beispiele aufgezeigt und die Lö-
sungsschritte nachvollzogen. Die
Programme sind für die Sekundar-
stufe 1 und 2 bestimmt. 4 Ap-
plesoft-Disketten (Preis?).
Lesen wie der Blitz
Das Programm dient dazu, Ihre Le-
segewohnheiten zu verbessern
und gleichzeitig Ihr Lesetempo zu
steigern. Ihre Konzentrationsfähig-
keit wird gefördert, indem Ihnen
Zahlen, Wörter oder Sätze für kur-
ze Zeit gezeigt werden, die Sie
niederschreiben sollen. Sie erhal-
ten dann die Antwort, ob es richtig
war. Durch regelmäßige Übung
(täglich 30-60 Minuten) steigern
Sie Ihre Geschwindigkeit. 1 Apple-
soft-Diskette, DM 115,—.
Erscheinungs- und Anzeigen-
schlußtermine für peeker
Ausgabe
24. 6.85 24.
22. 7.85 21,
26. 8.85 26.
23. 9.85 23.
21. 10. 85 20.
25. 11.85
Erscheinungs-
termin
Anzeigen-
schluß
5.85
6.85
7.85
8.85
9. 85
25. 10. 85
... in eigener Sache:
die Nachfrage nach dem verzgriffe-
nen Heft 1/84 ist groß. Ab sofort
können Sie eine Heftkopie direkt
beim Verlag bestellen.
Preis für das Inland:
DM 10,- inkl. Versandkosten
für das Ausland:
DM 12,- inkl. Versandkosten
eventuelle Luftpostzuschläge zzgl.
Peeker 6/85
APPLE |
x | APHEI PASCAL
A $
Apple II Betriebssystem,
272 Seiten, DM 49,—
Apple II Sprache,
216 Seiten, DM 39,-
Pascal 1.2 Addendum, etwa 100 Seiten,
DM 36,-
Betriebssystem und
Sprache
Erstes deutsches Referenzwerk sämtlicher Befehle
und Systemroutinen von Apple II Pascal — mit Adden-
dum einschließlich Version Pascal 1.2!
Gültig für Apple II, I Plus, Ile einschließlich der
128K/80 Zeichen-Konfiguration.
Betriebssystem kommentiert ausführlich und in
Deutsch Funktion und Benutzung der fast 60 System-
routinen des Apple II Pascal Betriebssystems.
Sprache ist das vollständige, deutsche Referenzwerk
der „Apple Pascal“-Programmiersprache mit u.a. Infor-
mationen über professionelle Pascal-Programmierung,
Turtlegraphics, Programmbibliothek etc.
In Vorbereitung: Addendum Pascal 1.2, ein
Zusatz zum Buch „Betriebssystem“ für 1.2-Benutzer in
Deutsch.
„Nach Unterlagen von Apple Deutschland hergestellt“
te-wi Verlag GmbH
173
Theo-Prosel-Weg 1 nl
8000 München 40
Weiterführende Literatur...
ı APPLE II -
== Anwenderhandbuch
(L. Poole)
LOGO -
Jeder kann programmieren
(Daniel Watt)
Erst mit Hilfe dieses Leitfadens werden Sie wi | Buch des Jahres in den USA. Für die
1 Ihren Apple Il erfolgreich einsetzen, denn |; Computer C64, ATARI, APPLE II, IBM-PC
# Text und Bildmaterial gehen weit über das u und TI-99.
hinaus, was herstellerseitig an Literatur
angeboten wird.
416 Seiten, Softcover, DM 56,-
APPLE II PASCAL -
APPLE || Eine praktische Anleitung
BSCAL (A. Luehrmann, H. Peckham)
Hochwertiges Textbuch für Logo-Kurse für
zu Hause und im Lehrbereich.
A4, DM 59,—
APPLE II - Bewegte 3D-Graphik
(Phil Cohen)
Selbstentworfene Graphiken und Dia-
! Unentbehrlich für alle, die die Programmier- | ua) re gramme -— animiert oder als Standbilder —
'“ sprache PASCAL lernen wollen und
eben oder räumlich: alle erforderlichen
an Zugang zu einem Apple-Computer haben. KR < > BASIC-Programme mit Erklärung finden
544 Seiten, Softcover, DM 59,-
EINE
PRAKTISCHE
ANLEITUNG -
ARTHUR LUEHRMANN : HERBERT PECKHAM
Computer für Kinder
(Sally Greenwood Larson)
Sie in diesem Buch.
ca. 190 Seiten, Softcover, DM 49,-
Apple Maschinensprache
APPLE Für BASIC-Programmierer der einfachste
Ein Buch für Kinder, ihre Lehrer MASCHINEN | Zugang zur Muttersprache des Apple. Wesent-
und Eltern.
„Computer für Kinder“ richtet
SPRACHE
DON INMAN - KURT INMAN
lich schnellere Maschinenprogramme, direkte
Manipulation des Mikroprozessors 6502 im
sich anKinder im Alter von Sbis - Apple — als Brücke dorthin benötigt dieses
tm 4153
_ geschrieben wurde.
Une haltsam und leicht verständlich.
A4 quer, Fadenheftung, DM 29,80
Noch im Programm:
Eye or 6111111172021 011 Wa EXT 1 110) 02 4 DJ Es) Rn
AVSESTOR PUB Wa dere) € 13 11117226: 111 9 DIT C:1 0 0:2 D)\/ Sy br Rn
13 Jahren, für deren Interesse an | 97" «; —==@ 5 Buch nur die drei BASIC-Befehle, POKE,
Computern dieses Buch bewufßst er \« 9% CALL, PEEK. D. Inman/K. Inman. DM 49, —
In Vorbereitung:
Macintosh Programmier-Handbuch DM 59,-
Fe N %
+
ME a Perteie fir +
Ihren Apple’ Rechnern +
N A
Hl Qualität, made in En
u nn |! | IN) N
° Laufwerke
o RAM-Karten
% Controller
® komplette Sub-Systeme
Information und Verkauf über den Fachhandel